【问题标题】:ASP.NET MVC - forms authentication and www subdomainASP.NET MVC - 表单身份验证和 www 子域
【发布时间】:2013-03-17 19:22:31
【问题描述】:

不久前,我发布了一个关于表单身份验证随机超时的问题。我以为这个问题已经解决了,但显然不是。

所以:我将会话、membershipprovider 和表单身份验证超时设置为 15 分钟。当我查看我的网站时,我会随机注销,但在我的问题中,我看到我主要是在指向我的网站的链接更改时注销 - 从 www.mysite.com 到 mysite.com,反之亦然。这有关系吗?如果是这样,有什么我可以做的,以便 mvc 能够识别 www。并且没有 www。版本一样吗?

【问题讨论】:

  • 您不应该更改您网站的网址,这会造成混淆并导致问题。没有理由这样做。
  • 您应该确保为您的站点设置了规范名称。要么使用 www,要么不使用,但不要同时使用

标签: asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

通过 web.config 在你的 auth cookie 中具体设置 cookie 域。

其次,可能不相关但只是为了安全起见,您是否正在处理会话和表单身份验证之间的超时同步?即使它们都设置为 15 分钟,它们也可以在非常不同的时间超时

查看我的帖子:Forms Authentication Timeout Logging

【讨论】:

    【解决方案2】:

    www.mysite.commysite.com 之间存在很大的区别。它们将在 2 个不同的会话和 cookie 中运行。甚至搜索引擎也会将它们识别为 2 个不同的网站。

    您应该尝试始终使用指向其中 1 个的链接,并在请求开始后立即执行 301 重定向。您可以在 Global.asax 中添加一些代码来验证 BeginRequest 的主机头。

    解决此问题的最佳方法是使用 IIS7 中的 Rewrite 模块,该模块会自动为您执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多