我这里有一个非常基本的问题,完全不知道如何处理它。
基本上,表单身份验证会在“domain.com”上为我的网站设置一个Cookie,并且工作正常,直到我的网站中的一个点,我将用户重定向到“www.domain.com/page”页面然后它无法识别身份验证Cookie。如果我手动输入“domain.com/page”,或者我使用完整的“www.domain.com”访问该网站,但如果两者之间无效(有和没有“www”)在前面)。有办法解决这个问题吗?
感谢你们给予的任何帮助!
答案 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