私はAsp.Net Web APIから始まり、ここに私の問題があります:Asp.net Web API承認フィルタでは、どのようにパラメータにアクセスできますか?
APIキーを探して私のメッセージヘッダーを調べるカスタム認証フィルターを実装します。このAPIキーに基づいて、私は自分のユーザーを取得し、彼がいくつかのリソースにアクセスできるかどうかを確認したいと思います。確認したいリソースIDは、HTTPリクエストのパラメータに基づいています。しかし、私はAuthorizationFilterメソッドで、アクションパラメーターのリストは空です。
どうすればいいですか?
認可フィルタの代わりにActionFilterを使用した場合、これが最初に実行されるフィルタであることをどのように確認できますか?また、グローバルに、フィルタの実行順序を指定するにはどうすればよいですか?
最後の質問は、私が任意のフィルタで取得できる "パイプ上の"データを追加することは可能ですか?セッションストアのようなものですが、リクエストに限定されていますか?認可が結合パラメータの前に実行属性任意の応答
RouteDataからパスパラメータ情報を取得することもできます。メモリが私に役立つなら、Request.GetRouteData()のようなものになります。 –
@DarrelMiller、私はちょうどそのアイデアをフォローし、私のハーネスはそのように動作していないようです。 var routeData = actionContext.Request.GetRouteData(); var value = routeData.Values ["MyValue"]を文字列として返します。私のrouteDataにはコントローラの値しか入っていません。あなたが同意しない場合、私はさらに調査します。 –
最初に、要求のプロパティに値を設定した承認フィルターを使用してから、アクションフィルターが機能しています。他の情報も有用でした。ご協力いただきありがとうございます。 – Ben