ここに記載されているようにカスタムAuthorizeAttributeクラスを作成したいとします:Override Authorize Attribute in ASP.NET MVC。メソッドのパラメータをそのメソッドの属性に渡すことはできますか?
トリックが許可されたユーザーはちょうど彼が実行されているどのような方法ではない依存するが、かどうか、であるだけでなく、パラメータ:
基本的には、ユーザーはいくつかのファイルを参照することを許可されます[MyCustomAuthorize(id)]
[HttpGet]
public ActionResult File(Guid id)
{
}
、他のものではないので、私は自分のカスタム権限属性にidを渡したいと思います。しかし、名前 'id'が範囲外であるため、これを行うようには見えません。
私は、メソッドの最初にユーザーがそのファイルにアクセスできることを確認するためのロジックを行うことができますが、これをすべて行う必要があるいくつかのメソッドがあります。それは[Authorize]属性の一部です。
「実際に私がやっていることを知っている」カテゴリにはおそらく含まれません。代わりにそれぞれの方法の中に権限があるかどうかを確認することをお勧めしますか? – GendoIkari
必ずしもそうではありません。アクション結果がキャッシュされている場合、ユーザーが 'GET'を実行したときに*は実行されません。したがって、アクションの権限チェックは実行されません。通常、役割提供者やAzManのような棚から離れたソリューションは、ホイールを再発明したくない人に最適です。 –