如果地址指定为 localhost(/Account/LogIn),则 RedirectResult 和 RedirectToRouteResult 在 OnActionExecuting 内不起作用,如果我将 url 指定为http://google.com工作正常。我为管理会话编写了一个 BaseConfig 类。在工作重定向登录时 OnActionExecuting 方法url 如果会话是 null.BaseConfig 类,我在我的项目中使用如下;
public class BaseConfig : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var context = HttpContext.Current;
if (context.Session["loggedUser"] == null)
{
filterContext.HttpContext.Response.Redirect(FormsAuthentication.LoginUrl);
//filterContext.Result = new RedirectToRouteResult(
//new RouteValueDictionary { { "controller", "Account" }, { "action", "LogIn" } });
}
base.OnActionExecuting(filterContext);
}
}
<authentication mode="Forms">
<forms loginUrl="~/Account/LogIn" defaultUrl="~/Home/Index" timeout="2880" protection="All" slidingExpiration="true" path="/"/>
</authentication>