如果我将会话超时设置为少于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>
答案 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或更高版本,他们会修正这个错字。