1.分部视图方法不能添加该特性,会报子方法不能重定向操作的错误
2.必须用给filterContext.Result赋值的方法进行重定向,而不能用filterContext.HttpContext.Response.Redirect,
否则,该特性执行完成后,会继续执行Action和其他ActionFilterAttribute
示例代码如下:
public class UserAuthenticationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext == null || filterContext.HttpContext == null)
return; HttpRequestBase request = filterContext.HttpContext.Request;
if (request == null)
return; var workContext = EngineContext.Current.Resolve<IWorkContext>(); if(workContext.CurrentSISTUser==null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
{
controller = "Account",
action = "Login"
}));
//filterContext.HttpContext.Response.Redirect("/Account/Login", true);
return;
} }
}