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

时间:2018-08-07 15:56:47

标签: azure asp.net-core azure-functions claims-based-identity

我有一个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中的声明的任何指南?

2 个答案:

答案 0 :(得分:4)

此功能在Azure Functions 2.0的C#中为now supported。现在,您可以将ClaimsPrincipal作为参数添加到HttpTrigger函数的签名中,或者可以通过HttpRequestreq.HttpContext.User对象上对其进行访问。

对JavaScript的支持应该很快就会出现,最终所有语言都应该支持此功能。

答案 1 :(得分:0)

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

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