【发布时间】:2018-07-14 07:55:36
【问题描述】:
我正在尝试修改与 Visual Studio Web api 模板一起提供的默认方法 GetUserInfo()。我的问题是,当用户电子邮件未在我的应用程序中注册时,我可以获得用户电子邮件。但如果用户注册 externalLogin 为空。
[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
[Route("UserInfo")]
public UserInfoViewModel GetUserInfo()
{
ExternalLoginData externalLogin =
ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
string email = externalLogin.Email;
// i can get email if user is not registered.
return new UserInfoViewModel
{
Email = User.Identity.GetUserName(),
HasRegistered = externalLogin == null,
LoginProvider = externalLogin != null ?
externalLogin.LoginProvider : null
};
}
我可以通过以下代码获取该第三方令牌的用户名。
var username = User.Identity.Name;
但我需要获取该访问令牌的电子邮件。
【问题讨论】:
标签: c# asp.net asp.net-web-api access-token