【发布时间】:2025-11-26 23:20:07
【问题描述】:
它总是令人困惑,没有提到哪个更好用,我个人更喜欢 JsonWebTokenHandler 因为它更适合 ValidateToken 的返回类型
命名空间的区别是Microsoft.IdentityModel.JsonWebTokens vs System.IdentityModel.Tokens.Jwt,也挺相似的?
有任何可用的指南吗?
【问题讨论】:
标签: .net asp.net-core .net-core jwt
它总是令人困惑,没有提到哪个更好用,我个人更喜欢 JsonWebTokenHandler 因为它更适合 ValidateToken 的返回类型
命名空间的区别是Microsoft.IdentityModel.JsonWebTokens vs System.IdentityModel.Tokens.Jwt,也挺相似的?
有任何可用的指南吗?
【问题讨论】:
标签: .net asp.net-core .net-core jwt
JsonWebTokenHandler 是新的和改进的版本。
见:https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/945
brentschmaltz 写道:
JwtSecurityTokenHandler 是根据现有的 System.IdentityModel.SecurityTokenHandler 建模的。我们必须做出一些妥协,例如在使用 SecurityTokenDescriptor 时使用 System.Security.ClaimsIdentity 作为构建 JWS 或 JWE 的类型。 ValidateToken 有一个 SecurityToken 类型的 out 参数,它不适用于异步。 返回了 ClaimsPrincipal,有时使用声明类型映射来构建声明。 这个模型是新模型,重量更轻,并且适用于原生 Json.Net 对象。 我们计划在顶层进行分层,以便您可以恢复到现有类型,但我们将允许用户控制使用注入和委托返回的内容。
在某些情况下,我们看到性能提升高达 100%。
【讨论】:
Microsoft.IdentityModel.Tokens.JsonWebTokens“是System.IdentityModel.Tokens.Jwt 的更新、更快的版本,具有附加功能。”