0

在我登录时的 MVC 3 应用程序中,它执行以下操作:

    System.Web.Security.FormsAuthentication.SetAuthCookie(userName, false);

我的 web.config 有以下内容:

    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

之后我设置了一些会话变量。问题是,如果我离开页面足够长的时间以使会话过期,然后单击页面而不是将我重定向到登录屏幕,它会在控制器中引发异常,会话变量的引用为空。

     public ActionResult Fixit(int Id, int cardId)
        {
            var model = new FixitVM();

            model.PointsMaxValue = (int)Session["MAXPoints"];
        }

这是预期的行为吗?我原以为重定向到登录页面会在此代码触发之前发生。在尝试评估此代码之前,我可以设置一些配置以使重定向发生吗?

4

1 回答 1

1

身份验证和会话由两个不同的 cookie 管理。会话 cookie 可能已过期,而身份验证 cookie 仍然有效。

于 2012-08-02T17:40:11.177 回答