【问题标题】:How do I add custom claims to an ACS Service Identity如何将自定义声明添加到 ACS 服务标识
【发布时间】:2013-03-04 17:58:43
【问题描述】:

我正在为我的应用程序使用 Window Azure 平台,我试图从他们在 google/yahoo 中的帐户中获取用户的信息..

但是我通过 Azure 的输入/输出声明获得的信息只是他们的姓名、电子邮件地址和身份提供者...当他们在 google/yahoo 中注册时,有人可以帮我获取他们的国家或手机号码

这是我获取声明的示例代码:

protected void Page_Load(object sender, EventArgs e)
    {
        {
            ClaimsPrincipal icp = Thread.CurrentPrincipal as ClaimsPrincipal;
            ClaimsIdentity claimsidentity = icp.Identity as ClaimsIdentity;
            string  email = "", name = "", idprovider = "" ;
            foreach (Claim c in claimsidentity.Claims)
            {

                if (c.ClaimType == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")
                {
                    email = c.Value;
                }
                if (c.ClaimType == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name")
                {
                    name = c.Value;
                }
                if (c.ClaimType == "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider")
                {
                    idprovider = c.Value;
                }

            }

            Label1.Text = (name + email + idprovider);

当我编辑我的规则时,ClaimsPrincipal 没有将国家/移动号码值计入其帐户....PLZ HELP !!!!!!

【问题讨论】:

    标签: asp.net azure


    【解决方案1】:

    据我所知 - 不是直接的,应该是这样的!

    当用户同意向您的应用程序提供他或她的身份时,他们不一定,当然也不会明确同意与您共享个人资料信息,因此身份提供者真的不应该这样做。

    以我的拙见,一些提供商已经提供了太多的东西——我没想到他们会像微软那样共享 GUID 以外的任何东西。例如,谷歌共享姓名和电子邮件地址,我不一定希望允许这样做。很多时候,我宁愿将我的 gmail 电子邮件地址保密,并为我正在登录的应用程序提供一个不同的地址,或者根本不提供。

    简而言之 - 观点是,如果您想要有关用户的任何信息 - 您应该向他们索取,而不是从其他地方获取。

    有关此视图的更多信息,如果有兴趣,请点击此处 - http://yossidahan.wordpress.com/2012/02/19/end-to-end-authentication-and-authorisation-scenario-for-mvcacs/

    【讨论】:

      猜你喜欢
      • 2012-12-09
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 2020-03-04
      • 2013-12-21
      • 2019-03-24
      相关资源
      最近更新 更多