System.IdentityModel.Policy.IAuthorizationPolicy是否已经过时?

3
根据这篇 MSDN 文章,当使用 WCF 时,接口 IAuthorizationPolicy 是注入自定义授权逻辑/自定义声明的最佳方式。

https://msdn.microsoft.com/en-us/library/ms729851(v=vs.110).aspx

然而,根据http://msdn.microsoft.com/en-us/library/system.identitymodel.claims%28v=vs.110%29.aspx中的描述,此接口中使用的某些类别已经“几乎过时”。

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命名空间中的类。

看到WIF类,似乎没有替代IAuthorizationPolicy的选项,但可以从头开始编写自定义身份验证和授权逻辑(claimsAuthenticationManager/claimsAuthorizationManager)。建议采用哪种方式?

感谢您的意见。

1个回答

4

在.NET 4.5中引入了“新”的身份管道,因此它们已被淘汰。

现在,ClaimsAuthenticationManager成为了在服务代码之前将声明添加到主体的可扩展性点。可以使用ClaimsAuthorizationManager来隔离授权策略(例如与ClaimsPrincipalPermission类一起使用)。

自带广告: http://www.pluralsight.com/courses/iac-wcf


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接