我可能不是第一个问的人,但我们现在应该用哪一个呢?据我所知,它从WCF的一个非常小的System.IdentityModel开始。然后是Microsoft.IdentityModel类,它增加了更多的内容。这就是http://social.technet.microsoft.com/wiki/contents/articles/1898.aspx#v3q10的情况
但是现在在4.5中,我看到System.IdentityModel几乎拥有来自Microsoft.IdentityModel的所有类(尽管似乎已经进行了一些重构,并且web.config中的配置略有不同)。
现在,微软预发了一个基于Microsoft.IdentityModel和System.IdentityModel.的JSON令牌处理程序作为nuget。( System.IdentityModel.Tokens.SecurityTokenHandler).派生的JWTSecurityTokenHandler驻留在Microsoft.IdentityModel.Tokens.JWT中
这越来越让人困惑了。有人知道我应该用哪一种吗?
发布于 2013-01-05 04:48:14
WIF1.0版本是您从微软下载“Windows”时得到的,它针对的是.NET 3.5 (并且与.NET 4.0兼容)。由于它是带外发行版,所有类型都必须驻留在非核心名称空间(Microsoft.IdentityModel,等。)和非核心组件。
当前的WIF4.5版本(如果我理解正确的话,它们跳入版本号)已经直接集成到核心的.NET 4.5框架中。最极端的例子是,IClaimsPrincipal接口已经被一个ClaimsPrincipal基类所取代,现在所有的.NET IPrincipal实现都是从这个基类派生出来的--这是直接在mscorlib.dll中实现的。因此出现了System.IdentityModel,等名称空间。
当然,预发布的JWT Handler (nuget)是一个带外发行版.如果它进入核心.NET vNext (假设JWT标准在那时已经完成),我一点也不感到惊讶,但在此之前,框架命名指南要求JWTSecurityTokenHandler等驻留在JWTSecurityTokenHandler中。
我可以理解您的困惑;我得到了帮助,因为我可以在我的项目上从头开始,现在只需要担心.NET 4.5。:)
发布于 2017-12-13 07:03:09
WIF类在Microsoft.IdentityModel WIF 3.5中的名称空间下收集,现在分布在以下名称空间中:System.Security.Claims、System.ServiceModel.Security和WIF 4.5中的System.IdentityModel命名空间。此外,一些WIF 3.5名称空间在WIF 4.5中被整合或完全删除。
https://stackoverflow.com/questions/13575766
复制相似问题