【问题标题】:How do i retrieve the email address when using google auth in mvc 5?在 mvc 5 中使用 google auth 时如何检索电子邮件地址?
【发布时间】:2013-10-14 20:54:14
【问题描述】:

我只在我的 asp.net mvc 5 应用程序中启用了 Google Auth。 我看到当我被重定向到谷歌身份验证屏幕时,我正在请求查看用户名和电子邮件地址的权限。然后我从 Google 返回,登录并命名我的新用户。

我显然已经请求查看电子邮件地址的权限,但默认情况下不会存储该地址。我如何将其存储在用户表中?

我已尝试编辑 startup.auth 中的选项,但没有任何与电子邮件相关的选项。通过 oAuth 执行此操作时,您手动请求它。我只是不知道我应该在哪里询问电子邮件地址...

另外,我将如何询问他们的 Google 帐号图片?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5


    【解决方案1】:

    aspnet mvc5 中的完整代码

    var googleOption=new GoogleAuthenticationOptions()
    {
        Provider = new GoogleAuthenticationProvider()
        {
            OnAuthenticated =  (context) =>
            {
                var rawUserObjectFromFacebookAsJson = context.Identity;
                context.Identity.AddClaim(new Claim("urn:google:name", context.Identity.FindFirstValue(ClaimTypes.Name)));
                context.Identity.AddClaim(new Claim("urn:google:email", context.Identity.FindFirstValue(ClaimTypes.Email)));
                return Task.FromResult(0);
            }
         }
    };
    
    app.UseGoogleAuthentication(googleOption);
    

    【讨论】:

    • 感谢您的帮助:)
    【解决方案2】:

    您可以从 ClaimIdentity 中检索它作为电子邮件声明

    Check this example

    var email = externalIdentity.FindFirstValue(ClaimTypes.Email);

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2017-05-08
    相关资源
    最近更新 更多