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

二级域名或跨域共享Cookies

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

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

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

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 3 Z( x0 i( ~5 T5 H0 N 2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。 ! q* e7 w2 l) \9 O, B5 E9 r3 z3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName ) o( L/ ^ H( q' O: f3 ]9 i: |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,写入时不要设置域名,即这两句不要。 * J" J5 E. O. k6 z) }- pResponse.Cookies("User").Domain = "h5.cn"* C0 N7 m( K1 K, K2 n( O Response.Cookies("User").Secure =False4 k' G4 k7 ]. W$ L 这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 5 a2 m6 Q4 e3 x+ U; n) f 1 n/ {# _2 p3 h( }& F, vTrackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤:7 c/ K! E1 T6 o2 }4 V 1、在iis新建站点3个 * }1 e6 [$ m' b! rwww.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com 9 G" u& {+ {3 }4 o, S+ ?) V. f2、在www.goalercn.com下建立文件testcookies.asp,代码如下:1 U& p2 Y1 Z' f. a% ?4 x+ D 程序代码 + ?8 j& t+ l& ? c2 V3 F9 v+ W( g<% # E& s' {+ v: S! B: A, X Response.Cookies("Type") = "Test Cookies"& C2 `+ `; d/ p5 A Response.Cookies("Type").Expires = date()+30: r( ]& H( j _1 P( F4 g Response.Cookies("Type").Domain = ".goalercn.com"+ r7 s3 q" z) ~" ?( U8 w \ Response.Cookies("Type").Secure = False ! ]! T# l; q' O' YResponse.Write Request.Cookies("Type") ( H7 h! _% z& q7 v%> $ ^1 p1 S9 @: ?7 \) S- H2 G3、在ad.goalercn.com下建立文件testcookies.asp,代码如下: / Q7 L N, s4 W' _程序代码9 Y% g6 L7 d5 j8 P+ J- W <%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上- `( [( {8 l, f1 m7 T# t 5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容: 6 c3 b: c7 h+ n1 ^; o1 t3 C2 R$ [ 127.0.0.1 ad.goalercn.com 2 q7 @2 d( Y* z- g" d 127.0.0.1 blog.goalercn.com : w& x% w3 q, { 127.0.0.1 www.goalercn.com 9 P: P- d% Z4 P7 y# ` \, r 127.0.0.1 goalercn.com+ j/ U D# D4 t* A2 l b9 b: V 6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies % W4 g) u- W, \7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies 9 ]% M6 D5 a$ h8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容0 V9 J) r) n% ~* C: B 9、换其他4个浏览器,都成功。注意点: " @; b$ r3 H# ^% h& z" e1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。/ x& k- \: h% r1 O6 d: j. o" F/ o 2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功 8 W4 M. w& Z! J+ k+ t3 z& I其他4个浏览器没测试。 8 z# z3 z. g$ x7 Q3、path我猜是不应该设置的。4 b, F# y' [- P+ e5 a' P" L( q 4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。7 }6 h; M) s- `( Y! S6 @1 ~" N 5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 04:11

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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