我正在尝试使用JWT来验证ASP.NET Web API的Node应用程序.
在ASP.NET中,我使用的是.NET 4.5.1和nuget包System.IdentityModel.Tokens.Jwt5.0.0
我不明白的是,为什么命名空间在Microsoft和之间混合System.
例如:
var tokenReader = new JwtSecurityTokenHandler();
tokenReader.ValidateToken(token,
new TokenValidationParameters()
{
ValidateAudience = false
},
out validatedToken);
Run Code Online (Sandbox Code Playgroud)
主要JwtSecurityTokenHandler在System.IdentityModel.Tokens.Jwt命名空间中,但TokenValidationParameters类及其依赖项位于Microsoft.IdentityModel.Tokens命名空间中,并且可能与System.IdentityModel.Tokens命名空间中的类似类冲突.
这是设计还是这可能是其他地方版本不匹配的标志?
如果你看一下依赖关系
nuget System.IdentityModel.Tokens.Jwt 4.0.2
VS
nuget System.IdentityModel.Tokens.Jwt 5.0
你会看到5.0依赖于
依赖
.NETFramework 4.5.1
Microsoft.IdentityModel.Tokens(> = 5.0.0)
4.0没有.事实上,没有以前的版本.
微软正在重新构建他们的框架,使其更轻量级.在ASP.NET的大小框架中,您将拥有许多功能冗余.
为了使WIF更轻,同时保持向后兼容,决定从库中删除冗余功能,而System.IdentityModel.Tokens.Jwt不再依赖System.IdentityModel.Tokens,而是依赖于Microsoft.IdentityModel.Tokens.不幸的结果之一是两层都暴露了相同的方法.
| 归档时间: |
|
| 查看次数: |
4493 次 |
| 最近记录: |