2012-05-10 9 views
0

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

+2

このような一般的な質問をする前に、http://www.asp.net/mvc/overview/securityにアクセスすることをおすすめします。 – marapet

+0

本当に助かりました。 –

答えて

2

AuthorizeAttributeがあなたの最初の防御線になります。グループメンバーシップまたはユーザー名に基づいてアクセスを許可できます。コードアクセスセキュリティ/プリンシパルアクセス許可属性とよく似ていますが、操作が難しくありません。

例:

// 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をオーバーライドして作成します。これはあなたのコードを消耗します。これは常に素晴らしいことです。

1

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

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

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

関連する問題