Azure 函数 2.x - 获取当前用户的声明



我有一个Azure Function 2.x(Asp.net Core(,并且正在使用Azure AD进行身份验证。我正在尝试在身份验证后访问登录用户的声明。以前使用 Azure Functions 1.x,我们将使用 ClaimsPrincipal.Current 获取声明,如下面的代码所示:

using System.Net;
using System.Collections.Generic;
using System.Security.Claims; 
using Microsoft.IdentityModel.Clients.ActiveDirectory; 
public static HttpResponseMessage Run(HttpRequestMessage req, out object document, TraceWriter log)
{
    string name = ClaimsPrincipal.Current.FindFirst("name").Value; 
    log.Info($"name is {name}");
    return req.CreateResponse(HttpStatusCode.OK, "Done");
}   

关于如何使用 .Net Core 访问 Azure Functions 2.x 中的声明的任何指南?

此功能现在在 Azure Functions 2.0 的 C# 中受支持。现在,您可以将ClaimsPrincipal作为参数添加到HttpTrigger函数的签名中,也可以通过 req.HttpContext.UserHttpRequest对象上访问它。

JavaScript 应该很快就会得到支持,最终所有语言都应该支持这个功能。

让我在这里发布一个代码示例,看看ClaimsPrincipal参数在哪里:

[FunctionName("MyFunctionName")]
public static HttpResponseMessage Run(
            [HttpTrigger(
                AuthorizationLevel.Anonymous,
                "get", "post",
                Route = "MyFunctionName")]HttpRequestMessage req, 
            ILogger log, 
            ClaimsPrincipal claimsPrincipal)
{
    // My function code here...
}

最新更新