System.IdentityModel.Tokens 和 Microsoft.IdentityModel.Tokens 有什么区别?我应该在 ASP.NET Core 应用程序中使用哪一个?

Toh*_*hid 5 jwt asp.net-identity-3 asp.net-core asp.net-core-2.0

我们可以在 NuGet 库中找到两个独立的包:

两者似乎都定期更新并有数百万次下载。

我知道它System.IdentityModel.Tokens.Jwt依赖于Microsoft.IdentityModel.Tokens,但我不知道应该在我的 ASP.NET Core 2.0 应用程序中使用哪个。

我现在正在使用Microsoft.IdentityModel.Tokens,它足以创建 JWT 令牌并验证它们。

我需要添加System.IdentityModel.Tokens.Jwt到我的项目中并更改任何代码吗?

PS:我在这个项目中没有使用 Azure 服务。

eVo*_*lve 6

正如您所指出的 System.IdentityModel.Tokens.Jwt 依赖于 Microsoft.IdentityModel.Tokens

依赖性

正如链接中所建议的,您应该使用System.IdentityModel.Tokens.Jwt nuget,因为 Microsoft.IdentityModel.Tokens 是较旧的库。

  • 这和你说的相反。System.IdentityModel.Tokens.Jwt(从 2013 年开始)比 Microsoft.IdentityModel.JsonWebTokens(从 2018 年开始)要老得多,请参阅:https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/wiki Microsoft.IdentityModel.JsonWebTokens - “这是 System.IdentityModel.Tokens.Jwt 的更新、更快版本,具有附加功能。” (4认同)