2017-10-11 16 views
1

Bearer Token ValidationAzure Function Invocation Filter으로 위임했습니다. 토큰의 유효성을 검사하고 클레임을 가져옵니다. 이제 그 클레임이나 ClaimsPrincipal 객체를 Function으로 전달하려고합니다.Azure 함수 필터에서 함수로 데이터 전달

 public override Task OnExecutingAsync(
       FunctionExecutingContext executingContext, CancellationToken cancellationToken) 
    { 
      var handler = new JwtSecurityTokenHandler(); 
      handler.InboundClaimTypeMap.Clear(); 
      principal = handler.ValidateToken(jwtToken, 
        new TokenValidationParameters 
        { 
         ValidateAudience = false, 
         ValidIssuer = issuer, 
         ValidateIssuerSigningKey = false, 
         SignatureValidator = (t, param) => new 
                 JwtSecurityToken(t), 
         NameClaimType = "sub" 

        }, out var token); 
    } 

나는 FunctionExecutingContextProperties라는 사전을 참조하십시오. 그러나 문서마다 필터간에 데이터를 전달하는 데 사용됩니다.

따라서 executingContext.Properties["claims"] = principal;은 데이터가 작동하지 않습니다.

WebAPI에서 RouteData으로 달성 할 수 있지만 Azure 기능에서 수행 할 수 있는지 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다.

답변

0

옵션이 제한되어 있습니다. Request.Properties와 같은 일반적인 속성 백은 없습니다. 함수를 사용하여 필터를 클래스에 넣은 다음 필터를 실행하면 인스턴스 필드를 설정할 수 있습니다. 귀하의 기능은 필드를 읽을 수 있습니다. JobActivator를 설정해, 각 호출이 새로운 클래스 인스턴스를 취득 할 필요가있는 경우가 있습니다.

+0

감사합니다. 나는 Azure 함수를 사용하고 있습니다. 클래스는 정적입니다. 그래서 나는 함수가 호출 될 때마다 새로운 클래스 인스턴스를 가질 수 없다고 생각한다. – Venky