再战子域共享Cookie问题

昨天贾宁旨光临寒舍,吃过晚饭回来后就跟他聊天,后来又玩了一会儿《Black Hawk Down》对战,到了大概晚上11点多,开始继续尝试用 Response.Cookies.Domain 来解决子域共享 Cookie 的问题。

根据网上的资料,包括 MSDN 的文章都说设置 Response.Cookies("domain").Domain = "Microsoft.com" 这样的形式以后,可以实现该Cookie对整个“Microsoft.com”域下的所有服务器都可以共享。我在本机测试的时候,也的确实现了“xxx.com”和“www.xxx.com”的Cookie共享,但是把测试文件传到wukangrui.net以后,www.oophome.net 却无论如何读取不到 oophome.net 写入的Cookie。我的测试程序如下:

test.asp

ASP/Visual Basic代码

<%       
Const CookieName="daodaoeric" 
Response.Cookies(CookieName).Domain = "oophome.net" 
Response.Cookies(CookieName)("Name") = "haha" 
Response.Cookies(CookieName)("HashKey") = "test" 
%>  

 test2.asp

ASP/Visual Basic代码

<%   
Const CookieName="daodaoeric" 
Response.Write Request.Cookies(CookieName)("Name")   
Response.Write Request.Cookies(CookieName)("HashKey")   
%>  

上传到空间里以后,test2.asp就无法读取Cookies,什么都不显示。后来我想,会不会是需要给test2.asp也设置Cookie作用域呢?但是又不可能写 Request.Cookies(CookieName).Domain = "oophome.net"

到睡觉的时候,这个问题还是没解决。

夜里做梦,梦见我把test.asp和test2.asp都同时加了写入和读取Cookie的操作,咦?那么test2.asp不是也可以指定Cookie作用域了吗?

醒来之后梦里的代码还历历在目,于是赶紧测试。两个文件修改如下:

test.asp

ASP/Visual Basic代码

<%       
Const CookieName="daodaoeric" 
Response.Cookies(CookieName).Domain = "oophome.net" 
Response.Cookies(CookieName)("Name") = "haha" 
Response.Cookies(CookieName)("HashKey") = "test" 
Response.Write Request.Cookies(CookieName)("eric")       
Response.Write Request.Cookies(CookieName)("daodao")       
%>   

test2.asp

ASP/Visual Basic代码

<%   
Const CookieName="daodaoeric" 
Response.Cookies(CookieName).Domain = "oophome.net" 
Response.Cookies(CookieName)("eric") = "daodao" 
Response.Cookies(CookieName)("daodao") = "Eric" 
Response.Write Request.Cookies(CookieName)("Name")   
Response.Write Request.Cookies(CookieName)("HashKey")   
%>  

果然,这下在test.asp里读取到了test2.asp写入的Cookie,在test2.asp读取到了test.asp写入的Cookie,在浏览器里分别用www.oophome.net 和 ctc.oophome.net 来访问这两个页面,也都正确显示了读取到的Cookie。

随后我把我的blog的用户Cookies处理部分根据这个测试做了修改,给写入和读取Cookie的代码前面加上了Response.Cookies(CookieName).Domian = "oophome.net",然后再测试,一切正如所期望的那样,在oophome.net的任何一个子域名下,都能正确读取到Cookie信息,判断登陆状态了。

 总结:

只要在读取和写入Cookie之前都先用Response.Cookies.Domain = "域名根",就能实现该域名根下的所有子域名共享Cookie,而如果只是在写入Cookie的时候设置作用域而在读取的时候不设置,则不能共享。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux系统运维

原 添加自定义监控项目,配置邮件告警,测

21230
来自专栏Java编程技术

Druid连接池原理学习

(1)、 如果设置了maxWait或者构造函数参数传入的为true,则创建的ReentrantLock为公平锁,否者为非公平锁 (2)、 如果设置了initi...

2.1K20
来自专栏跟着阿笨一起玩NET

sql转Linq的工具

这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer。

56330
来自专栏安全领域

物联网 MQTT 服务质量级别

原文地址:https://dzone.com/articles/internet-things-mqtt-quality

67870
来自专栏喵了个咪的博客空间

原 荐 EMQ百万级MQTT消息服务(小技巧)

附上: 喵了个咪的博客:w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2...

50440
来自专栏Play & Scala 技术分享

【长期更新】Play-Java开发技巧问答

30140
来自专栏挖坑填坑

ABP框架学习之——数据校验

7820
来自专栏运维

zabbix监控之redis自动发现并监控

[root@localhost etc]# cat  redis_port.py

29220
来自专栏恰童鞋骚年

.NET Core微服务之基于Consul实现服务治理(续)

上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧。

17850
来自专栏农夫安全

【原创】中间件测试方法总结---(1)

前言 之前讲了一些关于中间件的漏洞,本次来详细介绍一下对于常见中间件漏洞的测试,转载请说明来源,禁止用于非法和商业用途,多谢老铁支持 0x01 测试目...

48560

扫码关注云+社区

领取腾讯云代金券