1

如果地址指定为 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>
4

0 回答 0