【发布时间】:2020-03-08 13:25:00
【问题描述】:
我已经构建了一个 .Net Core Web 应用程序,该应用程序根据 Azure AD 对用户进行身份验证。身份验证成功后,我想访问经过身份验证的用户的详细信息,例如用户名/电子邮件。
我不知道该怎么做。任何人都可以帮忙吗?谢谢。顺便说一句,我正在使用 C#。
【问题讨论】:
标签: azure asp.net-core active-directory
我已经构建了一个 .Net Core Web 应用程序,该应用程序根据 Azure AD 对用户进行身份验证。身份验证成功后,我想访问经过身份验证的用户的详细信息,例如用户名/电子邮件。
我不知道该怎么做。任何人都可以帮忙吗?谢谢。顺便说一句,我正在使用 C#。
【问题讨论】:
标签: azure asp.net-core active-directory
这些值应通过声明提供。在 ASP.NET Core 中,您可以通过 User 对象访问用户的声明,该对象可从控制器、Razor 页面或 Razor 视图等大多数框架位置获得。
电子邮件和用户名应分别通过ClaimTypes.Email 和ClaimTypes.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>
【讨论】: