2010-12-20 95 views
1

我有一個控制器,並調用它的所有行動,用戶必須有privilages這樣做。問題是如何在執行操作之前檢查該問題? 如果用戶沒有權限,我想渲染帶有錯誤信息的視圖。我試圖用被覆蓋的OnActionExecuting的方法,但我不能從方法ASP.NET MVC 2如何在執行操作之前檢查用戶的權限?

回答

3

我試圖用被覆蓋的OnActionExecuting方法返回一個視圖,但我不能從該方法返回一個搜索

事實上,您可以:

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

它的工作原理,謝謝! :)我也想知道如何創建一個'base'方法,它將渲染帶有錯誤消息的視圖(該消息將被用作參數)。有任何想法嗎 ? – Tony 2010-12-20 11:19:26

0

在類Controller中,此方法受保護。

相關問題