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

二级域名或跨域共享Cookies

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

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

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

×
适用于Asp。在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。 注意点:1、当你有一个Cookie组(或叫Cookie字典)使用Domain属性指定域名之后,当你在对该组的成员进行修改或新增的时候,一定要在操作之后加上Resonse.Cookies(cookieName).Domain属性。 ) W" k: k. y, N2、如果没有必要,请不要修改已设置Domain的Cookie组,直接使用Response.Cookies("CookieText") = CookieValue 来创建一个新的Cookie。对于每个独立的Response.Cookies("CookieText") ,不管有无字典,都一次性写入,如果需要在多次写入,换一个Response.Cookies("CookieText") 。这点很重要。 4 L: U; a* [: ~" z# K, W+ [3、Response.Cookies("cookieName").Secure = False,Secure属性一定要是false 例子:Response.Cookies("Uto")("UtorName")=UtorName ! \" L p. }( B1 l' _* p( k, L5 LResponse.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,写入时不要设置域名,即这两句不要。2 d8 x/ z% z2 S% x, e8 N9 G0 @ Response.Cookies("User").Domain = "h5.cn". K) ~. [, v$ s( X5 N3 w Response.Cookies("User").Secure =False : S) }5 c; h3 B7 e$ b这样,在其他任何子域名调用Cookies时就能正常。详贴:http://community.csdn.net/Expert ... 4.xml?temp=.1769525 还有一个问题:近期有时间将详细阐述。 ( g( U, x- k2 w$ R& t6 G+ e( | * ]0 E6 f, U% r. i8 {% y* O3 MTrackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1762295
遨海湾-心灵的港湾 www.aosea.com
 楼主| 发表于 2008-1-8 14:00:00 | 显示全部楼层

二级域名共享cookies

步骤: . ~4 B/ K* f+ r1、在iis新建站点3个- `- N9 U9 W1 L www.goalercn.com(和goalercn.com),img.goalercn.com,blog.goalercn.com/ X2 R& L. f0 P' ~ 2、在www.goalercn.com下建立文件testcookies.asp,代码如下: # A1 C( J& s4 h5 o/ Q程序代码 8 t: B7 K9 l) _1 K3 _3 P7 l<% # _ b. F! Q4 i/ d$ Y* k8 B3 o bResponse.Cookies("Type") = "Test Cookies") g6 l! ~7 ^6 l G Response.Cookies("Type").Expires = date()+30 , F1 O* d9 m0 X. u+ pResponse.Cookies("Type").Domain = ".goalercn.com"* Q4 z4 o! | K' D0 E Response.Cookies("Type").Secure = False5 p: ~& e! a, t, p: p Response.Write Request.Cookies("Type") * T8 Z5 b& d& ]7 t/ d%>7 F! z: F8 A/ d; }/ P( ?: [ 3、在ad.goalercn.com下建立文件testcookies.asp,代码如下:; ~ t9 w( B7 r% j Y- f 程序代码 5 P, f# n0 j: `' R1 W9 X* F& b<%Response.Write Request.Cookies("Type")%> 4、在blog.goalercn.com下建立文件testcookies.asp,代码同上& E( l9 w( M, \ s6 A% K2 ]1 e 5、因为是本机测试,修改hosts文件,把4个域名都指向到127.0.0.1,也就是添加如下内容: 7 Q k3 z; P( k7 r6 V7 I& @ 127.0.0.1 ad.goalercn.com/ n4 w& T# u: U7 N5 [ [% q* C 127.0.0.1 blog.goalercn.com) k6 E; L, S5 l( X% t$ F8 F 127.0.0.1 www.goalercn.com & j9 J4 @$ f. c 127.0.0.1 goalercn.com3 M- d9 y6 i% i/ r 6、关闭所有浏览器,开ie,打开http://www.goalercn.com/demo/testcookies.asp,显示出文本内容:Test Cookies1 L0 _; N2 f/ A$ b5 N$ h3 p 7、新建窗口,打开http://ad.goalercn.com/temp/testcookies.asp,显示出文本内容:Test Cookies 2 X# Z- Y1 ]4 N v" x4 x0 E4 u, f3 @8、新建窗口,打开http://blog.goalercn.com/temp/testcookies.asp,同样显示出如上文本内容# k: O' T- f9 m; {( c; i1 R 9、换其他4个浏览器,都成功。注意点: ! ]2 j0 z+ L- H: d. ]1、Response.Cookies("Type").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则ad和blog的2级域名是取值不了。* u# `! b ]5 p1 H$ f6 d1 G5 ` 2、Response.Cookies("Type").Domain = ".goalercn.com",domain的值,我设置为"goalercn.com",也就是没有前面的点,在IE下成功 ) }: I. `0 X$ M! G O其他4个浏览器没测试。 * D4 y* h9 `5 L0 {3、path我猜是不应该设置的。 + R% _& b& k# b0 j4、在局域网内其他机器上,修改host指向到我机器的IP,取值成功。& i( f3 a; d. d: h$ E 5、在局域网另外一台机器上架设ad.goalercn.com,把testcookies.asp文件copy过去,同时修改host到当前机器,取值成功
遨海湾-心灵的港湾 www.aosea.com
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-22 16:56

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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