我正在使用ASP.NET MVC和Identity构建应用程序,并且我有Google登录工作,但我想显示用户的名称(来自Google / Facebook),以便而不是网站显示为"您好fred123@gmail.com"它显示为"嗨弗雷德"。我知道如何自定义ApplicationUser,它只是与我不太确定的提供商的互动。
有人可以帮忙吗?
答案 0 :(得分:2)
在ExternalLoginCallback
方法上,您可以获得所有详细信息。
//code omitted for clarity
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
var identity = AuthenticationManager.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie);
var emailClaim = identity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email);
var lastNameClaim = identity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Surname);
var givenNameClaim = identity.Result.Claims.FirstOrDefault(c => c.Type == ClaimTypes.GivenName);
var email = emailClaim.Value;
var firstName = givenNameClaim.Value;
var lastname = lastNameClaim.Value;
}