【问题标题】:OWIN rejects authentication cookie the next dayOWIN 次日拒绝身份验证 cookie
【发布时间】:2014-04-07 14:34:01
【问题描述】:

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

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

我无法在我的开发人员机器上重现此问题,它只发生在我当前的共享主机提供商上。实际上,它在我以前的提供商上运行正常。

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

我尝试显式设置滑动过期并增加 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 的过期时间,它们是正确的,这应该不是问题。它发生在各种浏览器中。

【问题讨论】:

  • 您的提供商是否会动态更改您的应用所在的操作系统?如果是这样,机器密钥会改变,票证将无效。在您的 web.config 上设置机器密钥,如果是这种情况,请重试。
  • 我的托管服务提供商声明总是同一台机器为我的应用程序提供服务。我尝试根据http://msdn.microsoft.com/en-us/library/ff649308.aspx 设置预定义的机器密钥,我将在接下来的几天内对其进行测试以确保它正常。感谢您的回答!

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2015-10-09
    • 2023-03-31
    • 2017-05-06
    • 1970-01-01
    • 2015-03-13
    • 2015-09-23
    • 2016-05-22
    • 2016-03-24
    相关资源
    最近更新 更多