Почему у нас есть два класса для токенов JWT: JwtSecurityTokenHandler и JsonWebTokenHandler? - PullRequest
1 голос
/ 28 февраля 2020

Это всегда сбивает с толку, и нет никаких упоминаний о том, что лучше использовать, я лично предпочитаю JsonWebTokenHandler, так как это более подходящий тип возвращаемого значения ValidateToken

Разница в пространстве имен - Microsoft.IdentityModel.JsonWebTokens vs System.IdentityModel.Tokens.Jwt, который также очень похож?

Есть ли какие-либо рекомендации?

1 Ответ

0 голосов
/ 24 марта 2020

JsonWebTokenHandler - это новая и улучшенная версия.

См .: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/945

brentschmaltz wrote:

JwtSecurityTokenHandler был смоделирован после существующего System.IdentityModel.SecurityTokenHandler. Нам пришлось пойти на некоторые компромиссы, такие как использование System.Security.ClaimsIdentity в качестве типа для построения JWS или JWE при использовании SecurityTokenDescriptor. ValidateToken имеет выходной параметр типа SecurityToken, который не подходит для asyn c. ClaimsPrincipal был возвращен, иногда используя сопоставление типов утверждений для построения утверждений. Эта модель - новая модель, она намного легче и работает с объектами Json. Net. Мы планируем наслоение сверху, чтобы вы могли вернуться к существующим типам, но мы позволим пользователям контролировать то, что возвращается, используя инъекцию и делегаты.

Мы увидели улучшения производительности до 100% в некоторых Scenar ios.

...