OWIN第二天拒绝认证cookie

时间:2014-04-07 14:34:02

标签: asp.net asp.net-mvc owin asp.net-mvc-5.1

我有一个ASP.NET MVC5应用程序,其中包含使用OWIN生成的启动配置。

用户登录我的应用程序,保持浏览器打开,但如果他第二天尝试访问它,应用程序会将用户重定向到登录页面。

我无法在我的开发者计算机上重现此问题,它只发生在我当前的共享托管服务提供商上。实际上它在我以前的提供商上运作正常。

应用程序池偶尔重启一次,但根据我的经验,如果我手动进行回收,它不会导致令牌失效(据我所知,这应该是预期的行为)。 / p>

我尝试明确设置滑动过期并增加cookie有效性,但它没有效果:

// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
     AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
     ExpireTimeSpan = TimeSpan.FromDays(365*20),
     SlidingExpiration = true,
     LoginPath = new PathString("/Account/Login")
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

我正在使用.NET Framework 4.5。我试图将我的所有NuGet包更新到最新版,但它没有解决问题。

我检查了发送的cookie的到期时间并且它们是正确的,这应该不是问题。它发生在各种浏览器中。

1 个答案:

答案 0 :(得分:8)

这是因为cookie受到ASP.NET的<machineKey>保护。听起来您的提供商正在做一些事情来触发应用程序域回收,或者您在Web场中,因此机器密钥不一致。尝试在web.config中设置<machineKey>