MVC 5授权在会话到期后仍允许访问

时间:2015-11-27 14:42:27

标签: authentication asp.net-mvc-5 owin

我有一个新的MVC 5项目,它遵循最低OWIN示例: http://www.khalidabuhakmeh.com/asp-net-mvc-5-authentication-breakdown-part-deux

然后我将[Authorize]属性应用于除登录控制器之外的所有控制器。当我第一次启动网站时,我需要登录,直到我这样做才能打到任何其他控制器 - 到目前为止很棒。

我将会话长度缩短为1分钟,如此:

<system.web>
  <sessionState timeout="1" />
</system.web>

现在当我登录时,我等待1分钟,然后应用程序点击以下行:

protected void Session_End(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Session_End");
}

然而,在此之后,我仍然可以导航到我想要的任何控制器。我的会话变量都是空的,但系统仍然认为我是授权用户。

我做错了什么?我怎样才能使会话到期时(1分钟后),用户需要再次登录?

1 个答案:

答案 0 :(得分:2)

您的应用程序cookie由身份会员系统管理。搜索方法 UseCookieAuthentication 。您必须设置 ExpireTimeSpan 属性,使其看起来像这样:

saveInBackgroundWithBlock