0

私は ASP.NET MVC3 を学んでおり、モデル/コンテキスト用のコントローラーを作成しました。ただし、誰でもこれらのページに移動して使用できます。これらのページの権限を設定するにはどうすればよいですか?

4

2 に答える 2

2

AuthorizeAttributeは防御の最前線になります。グループ メンバーシップまたはユーザー名に基づいてアクセスを許可できます。Code Access Security / Principal Permission Attributes とよく似ていますが、それほど難しくありません。

例:

// Allow Everybody in
public ActionResult Index ()
{}

// Allow only Editors/Admin to post edits back to controller.
[HttpPost]
[Authorize(Roles="Admin,Editor"]
public ActionResult Edit(EditViewModel vm)
{}

これらはクラスまたはメソッド レベルで使用できるため、許可されたユーザーのみがアプリの特定のコントローラーを使用できるようにするベース コントローラーを使用できます。

同じグループまたはユーザーを何度も使用していることに気付いた場合は、それらのグループが事前定義されている AuthorizeAttribute のオーバーライドを作成して、スペルを間違えたり忘れたりしないようにします。これはコードをドライアップすることにもなります。これは常に素晴らしいことです。

于 2012-05-10T18:15:10.127 に答える
1

Authorize 属性を使用して権限を制限できます。多くの場合、これは基本クラスから継承されます。これが最も一般的で推奨されます。

ActionFilter 属性を使用して OnActionExecuting をオーバーライドし、そこにカスタム ロジックを設定できます。可能ですが、推奨されません。

他にもたくさんの方法がありますが、前の 2 つが MVC の主な方法です。

于 2012-05-10T18:14:53.887 に答える