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

Sta*_*Mai 18 .net claims-based-identity wif

现在这很奇怪.在完成对.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 = vs10)(System.IdentityModel.Claims名称空间)

第2名:http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claim.aspx(Microsoft.IdentityModel.Claims)

第3名:(System.Security.Claims.Claim)

Tom*_*nna 30

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

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

从.NET Framework 4.5开始,并将Windows Identity Foundation(WIF)集成到.NET Framework中,基于WCF声明的身份模型已被WIF取代.WIF提供基于声明的身份对象模型,可用于跨多个Microsoft产品堆栈(包括CLR,WCF和ASP.NET)提供身份验证和授权.表示声明,声明类型以及基于声明的身份和主体的WIF类包含在 System.Security.Claims命名空间中.从.NET 4.5开始,应该使用这些类而不是System.IdentityModel.Claims命名空间中的类.

  • 引用的+1表示**...应该使用这些类而不是System.IdentityModel.Claims命名空间中的类.** (6认同)

小智 8

微软的答案似乎是:"现在WIF类在各个组件传播,其中主要有System.Security.Claims,System.IdentityModelSystem.IdentityModel.Services.System.Security.Claims包含新的ClaimsPrincipalClaimsIdentity类(见下文)在.NET中所有的校长,现在从派生.ClaimsPrincipal这些类的.Microsoft.IdentityModelWIF 1.0已经主要分布在System.IdentityModel(管道,WCF集成)和System.IdentityModel.Services(支持WS-Federation,会话管理).这些更改也反映在配置部分."


pod*_*ska 5

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

Microsoft.IdentityModel.Claims扩展System.IdentityModel.Claims并且是 Windows Identity Foundation 类。

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

因此,如果您正在编写 using WIF,则应该使用Microsoft.IdentityModel.Claims.