.NET声明在三个命名空间中



现在这很奇怪。在完成了对.NET中基于声明的解决方案的一些研究后,发现不同的作者在实际谈论同一问题时引用了.NET命名空间中的不同类。声明类(更不用说其他Identity、Principal、Manager、Helper类)在3个不同的命名空间中定义。

很明显,WIF是.NET 3.5和4.0的独立插件,它在4.5中被重写并成为核心的一部分。然而,对于新项目使用什么类有明确的指导确实会有所帮助(这样之后移植到4.5会更容易)。其他人有关于这个主题的更多信息吗?

第一个链接:http://msdn.microsoft.com/en-us/library/ms572956(v=vs.110)(System.IdentityModel.Claims命名空间)

第二:http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claim.aspx(微软身份模型索赔)

第三:(系统.安全.索赔.索赔)

对于仍在寻找明确答案的人来说,MSDN在其System.IdentityModel.Claims命名空间页面上有以下信息。。。

System.IdentityModel.Claims命名空间包含的类实现基于Windows Communication Foundation(WCF)声明的身份授权模型。此模型包括Claim类和ClaimSet类。

从.NET Framework 4.5和Windows Identity Foundation(WIF)与.NET的集成框架中,WCF基于声明的身份模型已被无线网络。WIF提供了一个基于声明的身份对象模型,该模型可以用于跨多个Microsoft产品堆栈,包括CLR、WCF和ASP.NET表示声明、声明类型和标识的类,以及基于声明的主体包含在System.Security.Champions命名空间从.NET 4.5开始应该使用类,而不是System.IdentityModel.Claims命名空间

Microsoft的答案似乎是:"WIF类现在分布在各种程序集中,主要的是System.Security.ClaimsSystem.IdentityModelSystem.IdentityModel.ServicesSystem.Security.Claims包含新的ClaimsPrincipalClaimsIdentity类(请参见下文)。.NET中的所有主体现在都派生自ClaimsPrincipalWIF1.0Microsoft.IdentityModel中的类主要分布在System.IdentityModel中(管道,WCF集成)和System.IdentityModel.ServicesWS-Federation支持,会话管理。这些变化也反映在配置部分中。"

System.IdentityModel.Claims是WCF/.Net 3.0 的一部分

Microsoft.IdentityModel.Claims扩展了System.IdentityModel.Claims,是Windows Identity Foundation类。

System.Security.Claims是.Net 4.5版本。

因此,如果您使用的是WIF,那么您应该使用Microsoft.IdentityModel.Claims

最新更新