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

二级域名或跨域共享Cookies

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

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

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

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 / t1 }% E1 Z* O1 V# E 2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。 5 y. \* ^7 v& c2 t6 F- t3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName 5 Y8 U8 E4 J( J Q5 IResponse.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,写入时不要设置域名,即这两句不要。, w+ g5 h. q# P3 r5 [* T Response.Cookies("User").Domain = "h5.cn" 7 I+ }& x( n. p% v( YResponse.Cookies("User").Secure =False : `- b6 C8 e. c6 J9 x9 F( l这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 % ~. K) t7 s! E: Z- A 2 y6 t% b, @6 e; g O4 N Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤: , \* {) _. H; ?1、在iis新建站点3个 . C' X; T) {' v& |. x9 d4 _www.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com4 b3 G8 ]5 d$ W: n i' n 2、在www.goalercn.com下建立文件testcookies.asp,代码如下:) w& T! X; R/ O0 h2 x" k1 a% \ 程序代码7 a! k' Z& r2 J <% / m2 f3 a6 W! N, {7 v: u7 d Response.Cookies("Type") = "Test Cookies"+ P- \3 Z/ d# @- K2 G Response.Cookies("Type").Expires = date()+306 D# W+ b: C+ T' T3 ^9 v+ O, F% G Response.Cookies("Type").Domain = ".goalercn.com", m- V7 R, }1 x$ v9 j3 t F Response.Cookies("Type").Secure = False % H- r6 k1 b* ?7 H' H. BResponse.Write Request.Cookies("Type")4 O: Y+ j* N0 D* P1 A% h %>8 R% ]+ c* l) q Z. z 3、在ad.goalercn.com下建立文件testcookies.asp,代码如下:2 J1 W% D" h( ?; {+ M; Z- l 程序代码1 c$ R9 h) a8 {* Y2 q- C <%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上. t: Y2 U7 S8 b- N 5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容: w% W8 @: n$ j* |- C. | 127.0.0.1 ad.goalercn.com( W; Q1 a7 I- G 127.0.0.1 blog.goalercn.com 1 w$ V+ h+ y [+ ~% h0 j/ Y 127.0.0.1 www.goalercn.com " J1 J; \' i( C3 m" d; D a 127.0.0.1 goalercn.com 5 U, {8 q2 Z9 |4 j; Q0 q6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies8 O, [: X: j3 _8 ?' F: d6 w, W, O 7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies 6 g4 u, ?5 R8 |% W' C/ r4 M7 ^- C8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容 4 }0 R# M6 v1 z0 C: \9、换其他4个浏览器,都成功。注意点: * o; n# p( s6 F/ f( P$ ^1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。, q5 M; o8 G; M: b, m 2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功: M( g5 \9 L7 C, E6 ?. V7 h, K 其他4个浏览器没测试。 7 p& }, z+ D7 p, x/ Q/ F0 {1 \3、path我猜是不应该设置的。$ |. o8 u; y, h4 i 4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。 . g- ~& f" k* `' I" Y# T5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-19 02:53

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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