0

SQL2008 DB にユーザー用のテーブルとロール用のテーブルがあり、次に UserRoles ブリッジ テーブルがあります。私は動作するために RoleProvider を使用する必要があり、いくつかのアクションを [Authorize(Roles = "Administrator,Developer")] で装飾しました。

私は実際にユーザーごとに自分のサイトにナビゲーションを構築しているので、RoleProvider は、下位レベルのユーザーが管理者から URL を取得して、想定されていないページに移動するのを防ぐためのものです。

ユーザーベースごとにサイトナビゲーションを構築し、ユーザー、その役割、およびその役割が表示できるページの間のマッピングを作成します。[Authorize(Roles = "")] を変更して、そのアクションへのアクセス許可を持つロールのリストをデータベースから動的に取得する方法があるかどうかを知りたいだけですか? そうすれば、私が持っているすべてのアクションを装飾する必要はありません。まるで魔法のように DB から引き出されます。

簡単な例をいただければ幸いです。ありがとうございます。ジャック

4

1 に答える 1

0

基本的に、AuthorizeAttributeから継承する独自のCustomAuthorizeクラスを作成し、OnAuthorizationでアクセスの検索を行いました。ユーザーがアクセス権を持っていない場合は、基本的に次のようにします。filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult( "/ accessDenied");

動作し、メソッドを次のように装飾します:[CustomAuthorize]

于 2011-01-03T22:30:33.217 に答える