【问题标题】:How do I get other claims of the user using ADFS?如何使用 ADFS 获得用户的其他声明?
【发布时间】:2010-03-28 05:23:52
【问题描述】:

我能够使用 ADFS 对用户进行身份验证,并使用以下语句成功获取用户别名。一段时间以来,我一直在寻找一种方法来获取经过身份验证的用户的其他声明,例如电子邮件、姓名、角色、用户名等。

对此的任何帮助将不胜感激。

字符串别名 = ((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;

Response.Write(别名);

【问题讨论】:

    标签: dotnetopenauth adfs2.0


    【解决方案1】:

    获取其他索赔的索赔方式如下。

    IClaimsPrincipal claimPr = (IClaimsPrincipal)(HttpContext.Current.User) 根据声明原则,您可以通过 IClaimsIdentity 获取 ClaimsIdentityCollection。

    从 claimPr.Identifies 中获取 IClaimsIdentity。

    然后使用 Claims 属性检查 IClaimsIdentity 中存在的所有声明。

    【讨论】:

    • 我试过你的代码,但在我的应用程序中。下面是我添加到应用程序字符串中的代码 alias = ((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias; Microsoft.IdentityModel.Claims.IClaimsPrincipal claimPr = (IClaimsPrincipal)(HttpContext.Current.User); ClaimsIdentityCollection lst = claimPr.Identities;我收到以下错误无法将“MicrosoftAdfsProxyRP.MicrosoftPrincipal”类型的对象转换为“Microsoft.IdentityModel.Claims.IClaimsPrincipal”。让我知道任何解决方案。提前致谢
    【解决方案2】:

    您正在向全世界提出有关 Microsoft 内部服务和界面的问题。尝试通过电子邮件向msftadfsproxydisc 别名发送您的问题。

    【讨论】:

      【解决方案3】:

      看看How to: Access Claims in an ASP.NET Page

      万一链接消失,关键是:

      void Page_Load(object sender, EventArgs e)
      {
          // Cast the Thread.CurrentPrincipal
          IClaimsPrincipal icp = Thread.CurrentPrincipal as IClaimsPrincipal;
      
          // Access IClaimsIdentity which contains claims
          IClaimsIdentity claimsIdentity = (IClaimsIdentity)icp.Identity;
      
          // Access claims
          foreach(Claim claim in claimsIdentity.Claims)
          {
            Response.Write(claim.ClaimType) + "<BR>";
            Response.Write(claim.Value) + "<BR>";
            Response.Write(claim.ValueType) + "<BR>";
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-03-22
        • 1970-01-01
        • 2015-12-10
        • 2016-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多