ASP.NET MVC - 表单身份验证和www子域

时间:2013-03-17 19:22:31

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

前一段时间我发布了一个关于表格auth超时的问题。我认为这个问题已经解决,但显然不是。

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

2 个答案:

答案 0 :(得分:1)

通过web.config在您的身份验证cookie中专门设置cookie域。

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

请参阅我的帖子:Forms Authentication Timeout Logging

答案 1 :(得分:0)

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

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

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