2017-10-11 4 views
1

Bearer Token ValidationAzure Function Invocation Filterに委譲しました。トークンを検証し、クレームを取得します。今私はこれらの主張またはClaimsPrincipalオブジェクトを機能に渡そうとしています。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

関連する問題