如何获取经过Azure AD身份验证的用户名和电子邮件

时间:2020-03-08 13:25:00

标签: azure asp.net-core active-directory username

我已经构建了一个.Net Core Web应用程序,可以根据Azure AD对用户进行身份验证。身份验证成功后,我要访问经过身份验证的用户的详细信息,例如用户名/电子邮件。

我不知道该怎么做。有人可以帮忙吗?谢谢。我正在使用C#。

1 个答案:

答案 0 :(得分:1)

这些值应通过 claims 提供。在ASP.NET Core中,您可以通过User对象访问用户的声明,该对象在大多数框架位置(如控制器,Razor页面或Razor视图)中都可用。

电子邮件和用户名应分别通过ClaimTypes.EmailClaimTypes.Name声明可用。因此,您应该能够执行以下操作以检索这些值:

string email = User.FindFirstValue(ClaimTypes.Email);
string name = User.FindFirstValue(ClaimTypes.Name);

您还可以遍历User.Claims集合,以查看身份验证提供程序所包含的内容。例如,您可以在Razor视图中执行此操作,以快速列出所有可用的声明:

<ul>
  @foreach (var claim in User.Claims)
  {
    <li><strong>@claim.Type:</strong> @claim.Value</li>
  }
</ul>