我已经构建了一个.Net Core Web应用程序,可以根据Azure AD对用户进行身份验证。身份验证成功后,我要访问经过身份验证的用户的详细信息,例如用户名/电子邮件。
我不知道该怎么做。有人可以帮忙吗?谢谢。我正在使用C#。
答案 0 :(得分:1)
这些值应通过 claims 提供。在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>