Asp.net外部登录(脸书)不要检索电子邮件

时间:2016-01-20 03:37:08

标签: c# asp.net facebook c#-4.0

我在Asp.net网站上使用inbuild外部登录 当用户使用谷歌登录时,一切正常,我检索用户名和电子邮件。

当我从Facebook登录时,它不会检索电子邮件

 protected void Page_Load()
    {
        // Process the result from an auth provider in the request
        ProviderName = IdentityHelper.GetProviderNameFromRequest(Request);
        if (String.IsNullOrEmpty(ProviderName))
        {
            Response.Redirect("~/Account/Login");
        }
        if (!IsPostBack)
        {
            var manager = new UserManager();
            var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();
            if (loginInfo == null)
            {
                Response.Redirect("~/Account/Login");
            }
            var user = manager.Find(loginInfo.Login);
            if (user != null)
            {
                IdentityHelper.SignIn(manager, user, isPersistent: false);
                IdentityHelper.RedirectToReturnUrl("~/clients", Response);
            }
            else if (User.Identity.IsAuthenticated)
            {
                // Apply Xsrf check when linking
                var verifiedloginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo(IdentityHelper.XsrfKey, User.Identity.GetUserId());
                if (verifiedloginInfo == null)
                {
                    Response.Redirect("~/Account/Login");
                }

                var result = manager.AddLogin(User.Identity.GetUserId(), verifiedloginInfo.Login);
                if (result.Succeeded)
                {
                    IdentityHelper.RedirectToReturnUrl("~/clients", Response);
                }
                else
                {
                    AddErrors(result);
                    return;
                }
            }
            else
            {
                userName.Text = loginInfo.DefaultUserName;
                Email.Text = loginInfo.Email ;
            }
        }
    }

请帮助

1 个答案:

答案 0 :(得分:0)

电子邮件是一项明确的许可。确保您使用的插件正在明确请求它。

请注意,对于少数用户,如果他们没有与其帐户关联的电子邮件ID,或者他们在Facebook设置中隐藏了他们的电子邮件,则此字段可以为空。