Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ASP.NET В одном контроллере JWE токен передаётся с заголовками, а в другом - без заголовков

Rin Shima Ученик (163), на голосовании 1 неделю назад
Проблема в том, что в одном контроллере этот метод получает все заголовки при чтении токена, а в другом контроллере он получает не все заголовки, хотя методы, версии библиотек и т.д. одинаковы, вот сам метод:
 [HttpGet(Name = "GetTokenPrincipal")]  
[Route("/GetTokenPrincipal")]
public ClaimsPrincipal? GetTokenPrincipal([FromQuery]string token)

{
var jwtSecurityToken = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler().ReadJwtToken(token);

var tokenEnc = jwtSecurityToken.Header.Enc;

throw new NotImplementedException();
}

Заголовки, полученные от первого контроллера из jwe:
 {"alg":"dir","enc":"A256CBC-HS512","typ":"JWT","cty":"JWT"}.{}  

Заголовки, полученные от второго контроллера из jwe:
 {"alg":"dir","typ":"JWT"}.{}  

Что я пробовал:
1) Проверил работу в двух разных контроллерах,
2) Проверил версии библиотек,
3) Проверил подключения в builder.Сервисы и app.Use...
Голосование за лучший ответ
Нишпор Никита Ученик (122) 1 месяц назад
Проблема заключалась в том, что эти библиотеки имели разные версии:
 1) Microsoft.IdentityModel.Tokens (Версия до 8.0.1) (Версия после 7.1.2)  
 2) System.IdentityModel.Tokens.Jwt (Версия до 7.1.2) (Версия после 7.1.2)  
Версии этих библиотек должны быть одинаковыми, иначе все перестанет работать!!
Похожие вопросы