0

我的 Azure Web 应用程序通过 Microsoft 帐户登录进行身份验证。我通过 Azure 门户启用了它,更改了 Web 应用程序的身份验证/授权设置。这不需要对 Web 应用程序代码进行任何更改。身份验证部分工作正常。

现在我想要在访问 Web 应用程序之前获得身份验证的用户的电子邮件 ID。

我试着读User.IdentitySystem.Security.Claims.ClaimsPrincipal. 但这将是空的。

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

4

2 回答 2

0

转到您的 web 应用程序并单击。Authentication / Authorization在身份验证提供程序下,单击Microsoft Account。单击wl.basic&wl.emails启用它们。

在此处输入图像描述

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

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

代码结果: 在此处输入图像描述

于 2019-06-21T06:56:22.750 回答
0

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

于 2019-07-18T04:01:56.267 回答