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