gpt4 book ai didi

c# - 使用 AAD 身份验证提供程序获取当前登录的用户

转载 作者:行者123 更新时间:2023-12-04 15:49:49 27 4
gpt4 key购买 nike

我有一个简单的网站,托管在 Azure 应用服务上,我按照推荐的快速设置启用了 AAD 身份验证 here它工作正常。

现在我想在导航栏上显示当前登录用户的用户名/电子邮件。我应该怎么做?

应用程序使用 C# Asp.Net Core 1.0.4 开发

非常感谢

最佳答案

您正在使用 Authentication and authorization in Azure App Service .

App Service passes user claims to your application by using special headers. External requests aren't allowed to set these headers, so they are present only if set by App Service. Some example headers include:




  • X-MS-CLIENT-PRINCIPAL-NAME
  • X-MS-CLIENT-PRINCIPAL-ID
  • X-MS-TOKEN-AAD-ID-TOKEN
  • X-MS-TOKEN-AAD-ACCESS-TOKEN


  • 引用: https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-how-to#access-user-claims

    Code that is written in any language or framework can get the information that it needs from these headers. For ASP.NET 4.6 apps, the ClaimsPrincipal is automatically set with the appropriate values.

    Your application can also obtain additional details on the authenticated user by calling /.auth/me.



    但目前似乎 ASP.NET Core 不支持将身份信息从 IIS 模块(如 Easy Auth)传输到应用程序代码。见 discussion这里 。

    我目前还没有测试过。但是你总是可以从上面的 headers 中获取用户名、 token 信息。如果您想获得更多用户的声明,您可以向内置端点发出服务器端请求 /.auth/me检索 claim 。

    您可以编写自定义中间件来填充 .net Core 中的 User 属性:

    https://stackoverflow.com/a/42270669/5751404

    关于c# - 使用 AAD 身份验证提供程序获取当前登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54307868/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com