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

二级域名或跨域共享Cookies

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

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

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

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 3 K& n7 [' [$ m' c2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。 7 B" g7 h0 @& x3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName2 M& n$ ?3 u; Y 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,写入时不要设置域名,即这两句不要。1 z0 L3 s. d( @- t% ~ Response.Cookies("User").Domain = "h5.cn": @7 m: J$ @$ W/ R$ I, }7 X# t Response.Cookies("User").Secure =False( z; s! B5 j; I) b( q/ Y. ^: u1 L+ H 这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 q3 y) D( a$ @: O; g ' N; l3 H) t) i, G' r- h( ETrackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤:+ O# F9 A {$ d1 H 1、在iis新建站点3个8 w" z$ v5 o1 O/ E' p, l1 z www.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com % c# |6 @ F: q; P2、在www.goalercn.com下建立文件testcookies.asp,代码如下: & x+ c$ R3 _! a程序代码6 N1 y+ B: Q6 t9 B/ u <% + H5 Z* z5 R8 M+ v) U+ I: Z Response.Cookies("Type") = "Test Cookies" ( {! D& \( e0 i1 { _* a0 y3 lResponse.Cookies("Type").Expires = date()+30 . @) `3 d" l7 w9 |+ uResponse.Cookies("Type").Domain = ".goalercn.com"1 W1 n8 w9 d) P6 \' C7 S Response.Cookies("Type").Secure = False 6 E' t! C/ s9 F8 F, }& O$ RResponse.Write Request.Cookies("Type") " ? g+ l1 x: F a( y* H%> |( h* e, B: g# `: S [- n 3、在ad.goalercn.com下建立文件testcookies.asp,代码如下:+ l! `( N* W3 X+ a( V+ K2 ? 程序代码 ; P& G: A! A! ~! C6 E<%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上6 g6 U' l" B- z3 Z 5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容:9 |, u+ \* b, ~+ K; D, N; L5 A- k 127.0.0.1 ad.goalercn.com 6 ?$ p" d! V1 R- D8 T 127.0.0.1 blog.goalercn.com " L( l/ z( C+ r) T) j 127.0.0.1 www.goalercn.com" W: y$ R9 {, c" r. E* c7 i 127.0.0.1 goalercn.com & p: Z5 A. a( g: t! G' q6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies, _% U1 A; ] U 7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies. H" ?# h: h% w+ t; O; j1 ]2 K1 Z 8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容 0 A* G v: b! v6 F0 N- ^; e1 M9、换其他4个浏览器,都成功。注意点:$ R& C7 H- R, l9 H7 z" K 1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。. _; P8 O$ I0 A% F- E, F 2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功 5 w A8 f% }2 d* r% s3 Q) Q, R其他4个浏览器没测试。 - X z. u+ x2 N( m$ F* P3 |3、path我猜是不应该设置的。 9 z6 K/ z7 [, {7 F* S8 ?4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。/ E2 J3 q K; H 5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-15 07:29

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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