1

我需要创建一个简单的 Azure Function App,为我提供访问它的用户名。

我已启用 Azure Active Directory“身份验证/授权”,当我访问功能 URL 时,它会提示用户,我可以很好地登录

在 Function App 日志中,我想查看已登录的用户。我该怎么做?

4

1 回答 1

2

应用服务使用特殊标头将用户声明传递给您的应用程序。不允许外部请求设置这些标头,因此它们仅在由应用服务设置时才存在。

您可以X-MS-CLIENT-PRINCIPAL-NAME用作 http resquest 标头来获取用户名。

var name1=httpRequest.Headers["X-MS-CLIENT-PRINCIPAL-NAME"].ToString();

ClaimsPrincipal此外,您可以从Run 方法中注入的实例中检索经过身份验证的用户信息

public static async Task<HttpResponseMessage> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
    HttpRequest httpRequest, 
    ILogger logger, 
    ClaimsPrincipal claimsPrincipal)
{   
    var name1=httpRequest.Headers["X-MS-CLIENT-PRINCIPAL-NAME"].ToString();
    var name2 = claimsPrincipal.Identity.Name;
}

注意

在 Azure 广告中添加应用注册时,将重定向 url添加为并在设置时https://yourfunctionname.azurewebsites.net/.auth/login/aad/callback单击。ID tokenAdvanced settings

于 2019-09-30T03:07:00.117 回答