找回密码
 入住遨海湾
搜索
网站解决方案专享优惠-3折上云
查看: 1346|回复: 1

二级域名或跨域共享Cookies

[复制链接]
发表于 2008-1-8 13:59:00 | 显示全部楼层 |阅读模式

登录后查才能浏览下载更多咨询,有问题联系QQ:3283999

您需要 登录 才可以下载或查看,没有账号?入住遨海湾

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 " e1 [2 k `7 ^) S! U, w 2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。8 z; q g9 ^5 H) ?& z" J) {, d7 y 3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName9 N% D7 c' Z" \9 `; q! M Response.Cookies("Uto")("UtorPwd")=UtorPwdResponse.Cookies("Uto").Domain="utoper.com"Response.Cookies("Uto").Secure =False4、IE对于.cn短域名的支持有重大BUG,没办法写入Cookies,有人测试了:http://blog.csdn.net/xssh913913/archive/2007/08/04/1725882.aspx 解决办法:如h5.cn域名,在h5.cn所有子域名中,不管从哪个子域名接收的信息,都发往h5.cn这个域名进行写入Cookies,写入时不要设置域名,即这两句不要。" y; H9 q% s- Y Response.Cookies("User").Domain = "h5.cn" ( I7 x! u7 ]/ k( n7 L) ^5 J' iResponse.Cookies("User").Secure =False ) B6 s3 A0 j$ {9 Q7 \这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 8 \5 r$ e4 n1 C6 T, p; ~% D- l n6 u , |& _. ^; Z* k8 H Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤: ( M& ?4 g" v1 @5 b s0 \7 m r1、在iis新建站点3个# A2 b3 i2 |' W; R) W www.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com' M# A2 s# n% F" y# o0 | 2、在www.goalercn.com下建立文件testcookies.asp,代码如下: , n6 j, E% m* v4 ?程序代码( S9 }6 @5 p- q4 c7 U; P <% * A0 \, N- @2 b2 n6 }Response.Cookies("Type") = "Test Cookies"" L2 o% T+ e7 q( J, ~# s Response.Cookies("Type").Expires = date()+30 ; Z# U- f0 c9 {; P6 l3 g0 `, H) ~Response.Cookies("Type").Domain = ".goalercn.com"% h. l- U* \7 H4 b, Q* K Response.Cookies("Type").Secure = False: ~) B& w4 C' r5 n/ d) w Response.Write Request.Cookies("Type") 9 K! g2 s7 g% S; T%>& ]7 D. u& }0 C* u5 D7 A 3、在ad.goalercn.com下建立文件testcookies.asp,代码如下:/ y5 ]8 ]) G3 E4 C2 q6 j9 N4 R 程序代码 2 @ T' u8 Y) j. q, m: c<%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上/ A) a7 A* Z/ n X 5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容: ! s; k- L) N' t9 z5 s4 G( q 127.0.0.1 ad.goalercn.com ; l4 ` Q& W2 m* \3 ^& A2 E& d 127.0.0.1 blog.goalercn.com7 e0 k6 I! n9 l) B" A; v2 @$ ? 127.0.0.1 www.goalercn.com # b. v, T8 n$ e5 C 127.0.0.1 goalercn.com ( q' T" E, H! L: T/ d0 z8 O6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies- Y1 H$ }* L/ a7 c: x 7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies ' P9 O b7 Q6 d6 h8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容! G% g4 ?. C- ?' @ 9、换其他4个浏览器,都成功。注意点: 4 ]$ l" x: ?& b2 n7 h4 @2 }7 H% A- N1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。 0 n# S% c7 Z; \* \2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功* P9 d8 O% s. ], M# G 其他4个浏览器没测试。% \8 D0 _& \8 q 3、path我猜是不应该设置的。: R3 J, \! h7 J 4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。) M- M9 e9 [4 i0 H& _ 5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

网站解决方案专享优惠-3折上云

手机版|小黑屋|遨海湾超级社区

GMT+8, 2026-7-8 08:41

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表