今天碰到一个需求:要求在二级域名站点中能够互相共享cookies。现在将实现方式公布出来,希望对小伙伴们有所帮助。
1、在iis中新建3个www.webym.net,idc.webym.net,jc.webym.net站点。
2、在www.webym.net下建立文件testcookies.asp,代码如下:
<% Response.Cookies("Type") = "Test Cookies" Response.Cookies("Type").Expires = date()+30 Response.Cookies("Type").Domain = ".goalercn.com" Response.Cookies("Type").Secure = False Response.Write Request.Cookies("Type") %>
3、在idc.webym.net下建立文件testcookies.asp,代码如下:
<%Response.Write Request.Cookies("Type")%>
4、在jc.webym.net下建立文件testcookies.asp,代码同上
5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容:
文件位置:C:\WINDOWS\system32\drivers\etc\hosts.asm
127.0.0.1 idc.webym.net
127.0.0.1 jc.webym.net
127.0.0.1 www.webym.net
127.0.0.1 webym.net
6、关闭所有浏览器,开IE,打开http://www.webym.net/testcookies.asp,显示出文本内容:Test Cookies
7、新建窗口,打开http://idc.webym.net/testcookies.asp,显示出文本内容:Test Cookies
8、新建窗口,打开http://jc.webym.net/testcookies.asp,同样显示出如上文本内容
9、换其他4个浏览器,都成功。
注意要点:
1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则idc和jc的2级域名是取值不了。
2、Response.Cookies("Type").Domain = ".webym.net",domain的值,我设置为"goalercn.com",也就是没有前面的点,在ie下成功,其他4个浏览器没测试。
3、path我猜是不应该设置的。
4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。
5、在局域网另外一台机器上架设idc.webym.net,把webym.net文件copy过去,同时修改host到当前机器,取值成功。