【发布时间】:2015-11-19 06:16:49
【问题描述】:
在我的 MVC5 应用程序中,我有 3 个区域。我的项目结构如下
我已经实现了一个 ActionFilter 类来验证用户是否已授予特定操作方法的权限。我的 ActionFilter 类不在区域文件夹中。我想检查 OnActionExecuting 方法中的用户权限并重定向到已在 ErrorControl 上实现的 PermissionDenied 操作方法。但是,它无法识别区域内并给出错误消息,提及“在该区域内未找到控制器和操作方法”
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(!GrantPermission(filterContext))
{
Controller contr = (BaseController)filterContext.Controller;
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {
{ "area", "" },
{ "controller", "Error" },
{ "action", "PermissionDenied" }
});
filterContext.Result.ExecuteResult(contr.ControllerContext);
}
base.OnActionExecuting(filterContext);
}
谁能帮我解决这个问题。这已经毁了我的一天。
【问题讨论】:
标签: asp.net-mvc-5 asp.net-mvc-routing