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; } } }