0

我遇到了一个问题,我不确定如何解决它。这是场景。

用户访问我的网站 (www.MyWebSite.com) 并单击一个按钮,将 cookie 放在他们的计算机上。如果我检查他们机器上的 cookie,它会将“主机”列为 www.MyWebSite.com。

如果用户随后将浏览器中的 URL 更改为 MyWebSite.com(不带 www)重新加载页面,然后单击按钮,则会创建一个与第一个 cookie 同名的全新 cookie。此 cookie 的主机是 MywebSite.com

显然这不好 - 除了两个同名的 cookie 之外,我的程序只读取具有相应 URL 地址的 cookie。

我可以强制使用 www 主机创建 cookie 和/或我可以强制页面为 www 还是什么???防止此问题的最佳方法是什么以及如何?

使用 VB.net 创建 Cookie

Response.Cookies("AAA")("bbb") = strABC
Response.Cookies("AAA").Expires = DateTime.Now.AddDays(1)

任何帮助是极大的赞赏。

4

2 回答 2

0

出于(明显的)安全原因,您只能读取由用户请求的同一域设置的 cookie。只是像您的示例中的差异或完全不同的域名都没有关系。

在这种情况下你可以做的(它也应该改善你的 SEO),将所有流量从没有 www 的网站重定向(301)到有 www 的网站。

如果您使用的是 IIS 7 或更高版本,您可以在此处找到有关如何使用 URL 重写的示例:http ://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite -重写-非 www-to-www.aspx

于 2013-08-04T09:14:35.450 回答
0

这是出于安全原因。主机的任何子域都被认为是另一个领域,另一个世界。

如果您希望您的 cookie 也被发送到您的子域,那么Hostcookie 的属性以.. 换句话说,将您的 cookie 设置为.MyWebSite.Com.

有关更多信息,请参阅维基百科

于 2013-08-04T09:18:04.060 回答