asp.net - 如何将自定义声明添加到 ACS 服务身份

标签 asp.net azure

我正在为我的应用程序使用 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 !!!!!!

最佳答案

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

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

以我的拙见,一些提供商已经提供了太多的内容 - 我没想到他们会共享除 GUID 之外的任何内容,就像 Microsoft 所做的那样。例如,谷歌共享姓名和电子邮件地址,但我不一定希望允许这样做。很多时候,我希望将我的 Gmail 电子邮件地址保密,并为我登录的应用程序提供一个不同的电子邮件地址,或者根本不提供。

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

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

关于asp.net - 如何将自定义声明添加到 ACS 服务身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15196917/

相关文章:

c# - 文件上传到服务器。我需要检查病毒吗?

c# - 缺少表定义的 SQL 条件

asp.net - 重命名 ASP.NET_SessionId

.net - 使用Javascript过滤div的 "list"

asp.net - 应用程序域在节点发布时重新启动 - Umbraco

azure - 命名空间 'Microsoft.Azure.WebJobs' 中不存在 EventHubTriggerAttribute

azure - 使用azure数据工厂根据空值过滤csv文件

azure - Set-AzBatchPool starttask resourcesfiles 找不到构造函数 Microsoft.Azure.Commands.Batch.Models.PSResourceFile

python - 如何在 Microsoft Azure Notebook 中使用 display() 函数

azure - 无法再使用Remove-ServiceFabricNodeState删除故障节点