如何获取经过身份验证的用户的电子邮件ID?

时间:2019-06-21 02:23:14

标签: azure azure-web-app-service azure-webapps

我的azure Web应用通过Microsoft帐户登录进行了身份验证。我通过更改Web应用程序的身份验证/授权设置通过Azure门户启用了此功能,而无需更改Web应用程序代码。身份验证部分工作正常。

现在,我需要访问Web应用程序之前已通过身份验证的用户的电子邮件ID。

我试图将User.Identity读为System.Security.Claims.ClaimsPrincipal。但这是空的。

如何访问经过身份验证的用户的电子邮件ID?

2 个答案:

答案 0 :(得分:0)

转到您的Web应用程序,然后单击Authentication / Authorization。在“身份验证提供程序”下,单击Microsoft Account。点击wl.basicwl.emails启用它们。

enter image description here

然后转到ExternalLoginCallback并添加以下代码:

var identity = await AuthenticationManager.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie);
var emailClaim = identity.Identity.FindFirst(ClaimTypes.Email);
var email = emailClaim.Value;

代码结果: enter image description here

答案 1 :(得分:0)

即使我的asp.net mvc应用程序最初是“无身份验证”应用程序,我现在也可以获取经过身份验证的用户电子邮件。我从Azure门户为Web应用程序启用了MS身份验证。现在,我从System.Security.Claims.ClaimsPrincipal.Current.Claims对象获取用户电子邮件。它是由MS身份验证流程自动设置的。