在fb将其api升级到2.4之前,所有东西都可以正常工作 (我在上一个项目中有2.3)。今天,当我在fb开发人员上添加新应用程序时,我使用api 2.4获得了它。问题:现在我收到来自fb(loginInfo.email = null)的空电子邮件。我当然检查过用户电子邮件在fb个人资料上是否处于公开状态,我越过了loginInfo对象,但没有找到其他电子邮件地址。我用谷歌搜索,但没有找到任何答案。请任何帮助..我有点失落..谢谢,我的原始代码(适用于2.3 API):在AccountController.cs中://// GET: /Account/ExternalLoginCallback[AllowAnonymous]public async Task<ActionResult> ExternalLoginCallback(string returnUrl){ var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } //A way to get fb details about the log-in user: //var firstNameClaim = loginInfo.ExternalIdentity.Claims.First(c => c.Type == "urn:facebook:first_name"); <--worked only on 2.3 //var firstNameClaim = loginInfo.ExternalIdentity.Claims.First(c => c.Type == "urn:facebook:name"); <--works on 2.4 api // Sign in the user with this external login provider if the user already has a login var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false); switch (result) { case SignInStatus.Success: return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return View("Lockout"); case SignInStatus.RequiresVerification: return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }); case SignInStatus.Failure: default: // If the user does not have an account, then prompt the user to create an account ViewBag.ReturnUrl = returnUrl; ViewBag.LoginProvider = loginInfo.Login.LoginProvider; return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email }); //<---DOESN'T WORK. loginInfo.Email IS NULL }}
3 回答
- 3 回答
- 0 关注
- 460 浏览
添加回答
举报
0/150
提交
取消