表单身份验证Cookie未被识别

时间:2014-01-28 01:18:33

标签: c# asp.net cookies webforms forms-authentication

我这里有一个非常基本的问题,完全不知道如何处理它。

基本上,表单身份验证会在“domain.com”上为我的网站设置一个Cookie,并且工作正常,直到我的网站中的一个点,我将用户重定向到“www.domain.com/page”页面然后它无法识别身份验证Cookie。如果我手动输入“domain.com/page”,或者我使用完整的“www.domain.com”访问该网站,但如果两者之间无效(有和没有“www”)在前面)。有办法解决这个问题吗?

感谢你们给予的任何帮助!

1 个答案:

答案 0 :(得分:1)

domain.com www.domain.com 被视为2个不同的域名。无法从另一个域访问在一个域中创建的Cookie。

这个问题有两个解决方案:

1)将Cookie的域属性设置为 .domain.com (请注意)。使用此设置,您的Cookie将可用于 domain.com domain.com 的子域。有关详细信息,请查看this。在web.config中,您可以执行以下操作:

<authentication mode="Forms">
   <forms domain=".domain.com" />
</authentication>

2)当用户尝试访问您的网站时,始终重定向到1个域。例如,当用户访问domain.com/page时,您将该用户重定向到www.domain.com/page =&gt; Cookie始终为 www.domain.com 创建,您的用户始终必须访问 www.domain.com