2010-12-20 13 views
1

私はコントローラーを持っており、そのすべてのアクションを呼び出すために、ユーザーは権限を持っていなければなりません。問題は、アクションが実行される前にチェックする方法ですか? ユーザーに権限がない場合は、エラーメッセージ付きビューをレンダリングします。は私がオーバーライドOnActionExecutingメソッドを使用しようとしましたが、私はオーバーライドOnActionExecutingメソッドを使用しようとしたその方法ASP.NET MVC 2アクションが実行される前にユーザーの権限をチェックする方法は?

答えて

3

からビューを返すことはできませんが、私はそのメソッドからビューを返すことはできません

することができます実際のところ:

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    bool userHasPermissions = CheckUserPermissionsFromSomewhere(filterContext); 
    if (!userHasPermissions) 
    { 
     filterContext.Result = new ViewResult 
     { 
      // you can also specify master page and view model 
      ViewName = "Forbidden" 
     }; 
    } 
    else 
    { 
     base.OnActionExecuting(filterContext); 
    } 
} 
+0

ありがとうございます! :)私はまた、エラーメッセージ(メッセージがパラメータとして使用される)を含むビューをレンダリングする '基本'メソッドを作成する方法を知っています。何か案は ? – Tony

0

クラスのコントローラで、この方法は、保護されています。

関連する問題