クラスメソッドで2つの別個の認可属性を指定する際に問題があります.2つの属性のいずれかがtrueの場合、ユーザーはアクセスを許可されます。メソッドの複数の承認属性
ザ・Athorizationクラスは、次のようになります。
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class AuthAttribute : AuthorizeAttribute {
. . .
とアクション:
[Auth(Roles = AuthRole.SuperAdministrator)]
[Auth(Roles = AuthRole.Administrator, Module = ModuleID.SomeModule)]
public ActionResult Index() {
return View(GetIndexViewModel());
}
は、これを解決する方法はありますか私は私のアプローチを再考する必要がありますか?
これはMVC2で実行されます。
でこれに関する詳細情報を見つけることができます
および実施例(すなわち 'いくつかの 'AuthAttributes'を入力として受け取るpublicクラスMultipleAuthOrAttribute {')? – adamse
他のアトリビュートのインスタンスをとるアトリビュートを作成することはできません。属性クラスコンストラクタは、コンパイル時に有効な値/プリミティブ型のみを受け入れることができます。だから、 'AuthorizeAttribute'はRolesを文字列として扱うのです。 –
複数の 'AuthorizeAttribute'インスタンスが論理' AND'として処理されるという文をサポートする公式文書への参照を提供することはできますか?私自身のテストでは、フィルタの順番が重要であると思われます。最初のフィルタでは、認証が成功するかどうかの最終的な結果が得られます。 –