【发布时间】:2013-01-26 14:22:22
【问题描述】:
我有一个与动作重定向相关的小问题。我想阻止用户使用我的 BaseController 类中的 OnActionExecuting 的覆盖来访问有关站点中特定区域的信息,该类是我所有控制器的基类。方法体:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (Request.IsAuthenticated && (User as Eagle.Security.EaglePrincipal != null) && Session != null && Session["LastKnownGoodArea"] != null && filterContext.ActionDescriptor.ActionName != "InvalidPermission")
{
var currentArea = Principal.CurrentCenter.CODEFORM_CSE;
if (currentArea != Session["LastKnownGoodArea"].ToString())
RedirectToActionPermanent("InvalidPermission", "Account", new { target = 0, redirectURL = null as string });
else
base.OnActionExecuting(filterContext);
}
}
但是,这不会重定向到指定的操作。我究竟做错了什么?如果有的话,你们会建议什么其他方法?
谢谢, 西尔维
【问题讨论】:
-
嗯,这不是一个真正的选择,因为在某些情况下,我只想调用基类(控制器)OnActionExecuting,它的返回类型为 void,而这正是它应该如何工作的。
标签: asp.net-mvc asp.net-mvc-3 redirecttoaction