1

重複の可能性:
ASP.NET MVC3 ロールとアクセス許可の管理 -> ランタイム アクセス許可の割り当てあり

ActionResult Membersメンバーのみがアクセスできるようにする必要があるコントローラーがあるとします。通常、アクションに属性を設定して、ロール[Authorize(Roles = "Members")]内の認証されたユーザーのみがアクセスできるようにします。Members

管理者(または何でも)が将来それを変更できるようにする方法はありますか[Authorize(Roles = "Members, PotentialMembers ")](これにより、ロール内のユーザーがこのアクションにアクセスMembersできるようになりますか?PotentialMembers

ありがとう

4

2 に答える 2

0

いいえ、AuthorizeAttributeを使用してこれを行うことはできません。渡したロールは、アプリケーションにハードコンパイルされます。

ただし、他の方法もあります。独自の認証フィルターを作成できます。または、OnAuthorizationなどをオーバーライドする基本クラスを作成することもできます。

于 2012-09-07T20:02:59.680 に答える
0

残念ながら、デフォルト属性でこれを行うことはできません。ただし、Authorize から継承して独自の属性を作成することもできます (または、Web で Authorize のソースを簡単に入手できます)。

そこから、a) ある種のインターフェイスを介してコントローラーごとに許可されたロールを保存し、b) カスタムフィルター属性でそれらのマッピングを使用してアクセスを許可/拒否するためのメカニズムを考案する必要があります。

これを行う場合は、アプリケーションの起動時にマッピングをロードし、メモリ内マネージャーを使用して構成の変更を通知することをお勧めします。

于 2012-09-07T20:05:16.263 に答える