1

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

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

4

1 回答 1

3

IClaimsPrincipal是 的 WIF 扩展IPrincipalIClaimsPrincipal提供 的集合IClaimsIdentity,同样地,IClaimsIdentity继承IIdentity.

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

IClaimsIdentity claimsId = HttpContext.User.Identity as IClaimsIdentity;
于 2012-12-20T22:02:16.590 回答