【问题标题】:How to get the Azure AD authenticated user’s username and email [closed]如何获取经过 Azure AD 身份验证的用户的用户名和电子邮件 [关闭]
【发布时间】:2020-03-08 13:25:00
【问题描述】:

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

我不知道该怎么做。任何人都可以帮忙吗?谢谢。顺便说一句,我正在使用 C#。

【问题讨论】:

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


    【解决方案1】:

    这些值应通过声明提供。在 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>
    

    【讨论】:

    • 感谢您帮助我。这行得通。就我而言,我需要的声明类型称为“preferred_username”。
    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多