use*_*973 15 asp.net-mvc asp.net-identity
我创建了一个MVC 5应用程序,并且我能够使用Google外部登录验证用户,这是一个开箱即用的功能.我观察到,通过使用谷歌帐户验证用户,用户名和电子邮件存储在具有相同值的数据库中(即,两者都有电子邮件).如何从注册的Google帐户中检索FirstName,LastName.
DSR*_*DSR 21
您可以ExternalLoginCallback在AccountController中的方法中获取此内容(因为您使用的是开箱即用的项目模板),如下所述.
[AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
if (loginInfo.Login.LoginProvider == "Google")
{
var externalIdentity = AuthenticationManager.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie);
var emailClaim = externalIdentity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email);
var lastNameClaim = externalIdentity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Surname);
var givenNameClaim = externalIdentity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.GivenName);
var email = emailClaim.Value;
var firstName = givenNameClaim.Value;
var lastname = lastNameClaim.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
3946 次 |
| 最近记录: |