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

二级域名或跨域共享Cookies

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

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

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

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 3 r3 t7 U1 Z: v" \ 2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。) k1 [, e6 G" \7 M 3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName( H+ `( D( `5 K2 T0 v" A$ q 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,写入时不要设置域名,即这两句不要。. w/ B" K8 p! @" A* x7 ? Response.Cookies("User").Domain = "h5.cn" j. ~$ n: Y( I' ]8 ZResponse.Cookies("User").Secure =False * {( H' e, i/ _7 e6 a4 r3 K这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 ; ?; A& l% S+ O+ Z, o 1 f+ F0 V6 q y( x1 F( ^Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤:$ _8 {! C F, F! R- T5 m 1、在iis新建站点3个, y4 Z0 K4 p2 m: F1 X! l2 O www.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com- w6 P6 h; d1 b0 M1 @& U; t; t 2、在www.goalercn.com下建立文件testcookies.asp,代码如下: ' ~/ E a- R7 l3 a* U1 k程序代码 . c6 X X$ w# g: l; [0 I) a @<% ; S( v5 J# F& b8 r+ @# W5 @ Response.Cookies("Type") = "Test Cookies" 7 u' U1 G4 b4 Z0 mResponse.Cookies("Type").Expires = date()+30 8 R6 H( ?- X: H! z \- }7 w, q8 U+ iResponse.Cookies("Type").Domain = ".goalercn.com"- P% N$ ?- I5 q1 `* r. F- \ Response.Cookies("Type").Secure = False / f9 A3 {$ X9 u8 a% O6 B6 D" YResponse.Write Request.Cookies("Type") 4 |5 h1 x4 |5 I0 |%> ) p# f7 ?/ O; C3、在ad.goalercn.com下建立文件testcookies.asp,代码如下:* ` L- |6 m+ n+ Q* t9 N 程序代码 7 g, x/ o0 |' H<%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上 ! d5 i: j5 v r2 @5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容:% V$ l& ^4 W0 n' }7 Z6 W7 P0 T' U 127.0.0.1 ad.goalercn.com" f7 z( x6 r' l+ w( v5 ^ 127.0.0.1 blog.goalercn.com) M: C9 k$ o7 d, J 127.0.0.1 www.goalercn.com5 t* p8 i2 r3 S3 T( v 127.0.0.1 goalercn.com- W3 R! l- w4 q8 l8 | 6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies 1 k7 n' s( }# l$ }7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies 2 s, D! z! {# t3 b6 \: D- F8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容* w+ [$ R" w/ M3 ` 9、换其他4个浏览器,都成功。注意点:& g: P) b9 W. g! K 1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。 " o! t( ^' Q" |; x& W8 ?2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功, s9 z1 J$ |' I& Y' X& S0 r 其他4个浏览器没测试。 / N1 G. U$ x' `7 F2 m5 I3、path我猜是不应该设置的。 $ ^' G2 [ J2 \; R y7 g4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。' v8 z3 D; X3 ^ 5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-4-4 22:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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