HttpContext.User.Identity和IClaimsPrincipal之间的差异



我是身份系统开发的新手,我正在考虑在ASP.NET MVC 3体系结构(在控制器级别实现)中使用声明主体和声明身份进行授权。

我可以看到一些使用HttpContext.User.Identity进行授权的实现,有些使用IClaimsPrincipal。根据我在几篇文章中的理解(较差),IClaimsPrincipal是一种基于声明的方法,为应用程序级别的使用提供HttpContext.User.Identity上下文。如果我使用ADFS 2.0作为STS/FP服务,这两种方法之间的区别是什么?哪一种更有效?

IClaimsPrincipalIPrincipal的WIF扩展。IClaimsPrincipal提供了IClaimsIdentity的集合,同样,IClaimsIdentity继承了IIdentity

如果您在ASP.NET中使用WIF,那么IClaimsPrincipal/IClaimsIdentityHttpContext.User.Identity实际上是相同的方法。作为身份验证管道的一部分,WIF会将您的HttpContext.User.Identity设置为IClaimsIdentity,这样您就可以访问它,如下所示:

IClaimsIdentity claimsId = HttpContext.User.Identity as IClaimsIdentity;

相关内容

  • 没有找到相关文章

最新更新