2010-12-20 42 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中,此方法受保护。

相关问题