ASP.NET MVC会话超时不起作用

时间:2014-10-17 13:49:51

标签: asp.net-mvc iis session-timeout

如果我将会话超时设置为少于20分钟,则一切正常。

但如果是> 20分钟它不起作用。它适用于VS 2013和Production IIS。

这是我用过的代码。

如何解决这个问题?谢谢!

STARTUP.AUTH

  public partial class Startup
    {  
        public void ConfigureAuth(IAppBuilder app)
        {
            var sessionTimeout = 5;

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                ExpireTimeSpan = TimeSpan.FromMinutes(sessionTimeout),
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login")
            });
}

Global.asax中

 protected void Session_Start(object sender, EventArgs e)
        {

                Session.Timeout = 5;

        }

P.S。 WEB.CONFIG

   <sessionState mode="InProc"  />

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" defaultUrl="~/Account/Login" name="MyApp123"   />
    </authentication>

1 个答案:

答案 0 :(得分:2)

听起来你的web.config中仍然有FormsAuthentication配置。您正在使用ASP.NET Identity,它与旧的FormsAuthentication冲突。

更改为:

<authentication mode="None"/>

确保你有这个:

<system.webServer>
    <modules>
        <remove name="FormsAuthentication" />
    </modules>
</system.webServer>

您也可以使用asp.net身份生成默认Web项目,并查看web.config,它将具有相同的条目。请注意,V1标识模板的拼写错误使用&#34; FormsAuthenticationModule&#34;而不是&#34; FormsAuthentication&#34;在删除元素中。如果你正在使用v2或更高版本,他们会修正这个错字。