c# – .NET JWT令牌验证的命名空间:System vs. Microsoft
我正在尝试使用JWT将Node应用程序认证到ASP.NET Web API.
在ASP.NET中,我使用的是.NET 4.5.1和nuget软件包System.IdentityModel.Tokens.Jwt 5.0.0 我不明白的是,为什么命名空间在Microsoft和System之间混合. 例如: var tokenReader = new JwtSecurityTokenHandler(); tokenReader.ValidateToken(token,new TokenValidationParameters() { ValidateAudience = false },out validatedToken); 主要的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有一个依赖
那4.0没有.其实没有以前的版本. 微软正在重构架构,使其重量更轻.在一个ASP.NET的大小的框架中,你将有很多功能冗余. 为了使WIF更轻,同时保持向后兼容,决定从System.IdentityModel.Tokens.Jwt中的库中删除冗余功能,不再依赖于System.IdentityModel.Tokens,而是依赖于Microsoft.IdentityModel.Tokens.不幸的结果之一是两层暴露了相同的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |