两个网站的Cookie共享 a网站和b网站属于不同的域,比如http://a.c.com和http://b.c.com ;a网站页面同步b网站写入的Cookie值。(所谓的Cookie共享)这个应该怎么做呢,各位大神帮帮忙吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过url相互传递,2个网站互为代理,例如a要写b的cookie,调用b的url,通过request传递参数,b收到参数写入自己的cookie,不过,要提醒楼主,你的想法我觉得欠妥,你有没有考虑到网络上的复杂情况,一旦又断网或丢包的情况,你的同步方案可能无法实现,跨域共享,我看还是利用数据库共享来实现,N个站点都操作同一份数据,根本不需要所谓的同步,因为不了解你的应用场景和实际需求,说的不一定对你有用 如果要求不是那么严格.Cookie有三个属性需要注意一下: 1. Domain 域 2. Path 路径 3. Expires 过期时间跨域操作需要设置域属性:Response.Cookies("MyCookie").Domain = "cnblogs.com"; (这里指的是泛域名)这样在其它二级域名下就都可以访问到了, ASP 和 ASP.NET 测试通过虚拟目录下访问:我在ASP端做了下测试,.NET的没试, 如果不指定Path属性, 不同虚拟目录下Cookie无法共享将Response.Cookies("MyCookie").Path = "/" 就可以了总的写法:Response.Cookies("MyCookie").Domain = "cnblogs.com";Response.Cookies("MyCookie").Path = "/"Response.Cookies("MyCookie").Expires = Now + 365;Response.Cookies("MyCookie")("Test") = "test";HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename]; 2 if (cookie != null) 3 { 4 cookie.Values.Clear(); 5 SetUserCookieExpireTime(cookiename, -1); 6 cookie.Domain = _domain; 7 System.Web.HttpContext.Current.Response.Cookies.Set(cookie); 8 } 9 public static void SetUserCookieExpireTime(string key, int days)10 {11 System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;12 System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;13 System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);14 }15 HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename]; 2 if (cookie != null) 3 { 4 cookie.Values.Clear(); 5 SetUserCookieExpireTime(cookiename, -1); 6 cookie.Domain = _domain; 7 System.Web.HttpContext.Current.Response.Cookies.Set(cookie); 8 } 9 public static void SetUserCookieExpireTime(string key, int days)10 {11 System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;12 System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;13 System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);14 }15 楼上正解Domain="你的域名",不要加www这样你的二级域名都可以访问了 1 后台代码Response.Cookies("MyCookie").Domain = "c.com";2 web.config 的设置(不同项目中的web。config 必须保证 machineKey 相同才行) <machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" /> <authentication mode="Forms"> <forms name="AuthCookie" loginUrl="~/Core/Login" domain="tiantian.com" timeout="120" protection="All" path="/"></forms> </authentication> <authorization> <deny users="?" /> </authorization> <customErrors mode="Off" />3 在页面的 head 标签下加入脚本<script language="javascript" type="text/javascript">document.domain = "c.com";</script> 帮我解释一下代码关于插入sql语句的 imagemap的hotspot热区是否有mouseover事件 高分求c#通用的类文件.cs! 如何读取IDOC文件? 那里有好的免费域名? 想测试一下网站`~简直送分 谁知道hiForums(Asp.net Forums)在哪里可以下到英文版的 局域网 里面 连接sql server远程服务器,怎样设置代理服务器呢? 求好一点的时间控件,可选择小时和分的?? 请问如何将windows2000的IIS升级到最新版本,比如6.0 读取XML文件的问题 关于工程文件csproj.user里的配置说明,有大侠帮解释一下么? 数据绑定的问题
a要写b的cookie,调用b的url,通过request传递参数,b收到参数写入自己的cookie,不过,要提醒楼主,你的想法我觉得欠妥,你有没有考虑到网络上的复杂情况,一旦又断网或丢包的情况,
你的同步方案可能无法实现,
跨域共享,我看还是利用数据库共享来实现,N个站点都操作同一份数据,根本不需要所谓的同步,
因为不了解你的应用场景和实际需求,说的不一定对你有用
1. Domain 域
2. Path 路径
3. Expires 过期时间跨域操作需要设置域属性:
Response.Cookies("MyCookie").Domain = "cnblogs.com"; (这里指的是泛域名)
这样在其它二级域名下就都可以访问到了, ASP 和 ASP.NET 测试通过虚拟目录下访问:
我在ASP端做了下测试,.NET的没试, 如果不指定Path属性, 不同虚拟目录下Cookie无法共享
将Response.Cookies("MyCookie").Path = "/" 就可以了总的写法:
Response.Cookies("MyCookie").Domain = "cnblogs.com";
Response.Cookies("MyCookie").Path = "/"
Response.Cookies("MyCookie").Expires = Now + 365;
Response.Cookies("MyCookie")("Test") = "test";
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
2 if (cookie != null)
3 {
4 cookie.Values.Clear();
5 SetUserCookieExpireTime(cookiename, -1);
6 cookie.Domain = _domain;
7 System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
8 }
9 public static void SetUserCookieExpireTime(string key, int days)
10 {
11 System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;
12 System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;
13 System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);
14 }
15
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
2 if (cookie != null)
3 {
4 cookie.Values.Clear();
5 SetUserCookieExpireTime(cookiename, -1);
6 cookie.Domain = _domain;
7 System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
8 }
9 public static void SetUserCookieExpireTime(string key, int days)
10 {
11 System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;
12 System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;
13 System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);
14 }
15
Domain="你的域名",不要加www
这样你的二级域名都可以访问了
Response.Cookies("MyCookie").Domain = "c.com";2 web.config 的设置(不同项目中的web。config 必须保证 machineKey 相同才行)
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" />
<authentication mode="Forms">
<forms name="AuthCookie" loginUrl="~/Core/Login" domain="tiantian.com" timeout="120" protection="All" path="/"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
<customErrors mode="Off" />3 在页面的 head 标签下加入脚本
<script language="javascript" type="text/javascript">
document.domain = "c.com";
</script>