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

fol*_*man 1 active-directory azure asp.net-core

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

\n\n

我无法\xe2\x80\x99 弄清楚如何做到这一点。有人可以帮忙吗?谢谢。顺便说一句,我正在使用 C#。

\n

pok*_*oke 5

这些值应通过声明提供。User在 ASP.NET Core 中,您可以通过大多数框架位置(如控制器、Razor 页面或 Razor 视图)提供的对象来访问 user\xe2\x80\x99s 声明。

\n\n

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

\n\n
string email = User.FindFirstValue(ClaimTypes.Email);\nstring name = User.FindFirstValue(ClaimTypes.Name);\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
<ul>\n  @foreach (var claim in User.Claims)\n  {\n    <li><strong>@claim.Type:</strong> @claim.Value</li>\n  }\n</ul>\n
Run Code Online (Sandbox Code Playgroud)\n