请问在不同服务器上 相同域名的程序 是否可以共享cookie

圣光麦造 2014-08-09 02:03:35
各位 小弟现在开发遇到以下问题

在 a.abc.com 中设置下了cookie x 与 y
在 b.abc.com 中是否可以设置 domain 为 abc.com 来做到共享
两个网站在不同的服务器上
...全文
937 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2014-08-11
  • 打赏
  • 举报
回复
难道不是 domain=.XXX 就可以了吗?
Delta 2014-08-09
  • 打赏
  • 举报
回复
学习了。朋友以前遇到过此问题。呵呵。。。
jshi123 2014-08-09
  • 打赏
  • 举报
回复
我试了firefox,ie和chrome都可以。开始试的时候程序写错了,所以得出了错误的结论。
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 20 楼 shushangdeyezi 的回复:
主域名一样,子站点是完全可以共享cookie的,你试验一下就知道了
恩 只不过不是在一个服务器上 负责的程序员有一些疑惑 所以开出来向大家求证一下 我以前有做过这东西 在同一服务器上几个不同的程序域里面 情况有些不同 所以还是求证一下 要不然负责人有疑惑
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 19 楼 jshi123 的回复:
我也是局域网里试的,改hosts文件,设置三个域名指向不同机器,再建三个网站就能试了。
好的 非常感谢 只有在FireFox和Chrome里面会出现这个情况 在IE中 好像默认二级域名之间cookie就是可以共享的 = = 好奇怪的设定
shushangdeyezi 2014-08-09
  • 打赏
  • 举报
回复
主域名一样,子站点是完全可以共享cookie的,你试验一下就知道了
jshi123 2014-08-09
  • 打赏
  • 举报
回复
我也是局域网里试的,改hosts文件,设置三个域名指向不同机器,再建三个网站就能试了。
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 17 楼 jshi123 的回复:
我刚试了一下,不在同一服务器上也是可以的。2楼,3楼是对的,只要domain设成.abc.com就行了。
非常感谢 = = 我这边没法测试到 因为是在云端上放着 这边需要一个结论才会开始实现
jshi123 2014-08-09
  • 打赏
  • 举报
回复
我刚试了一下,不在同一服务器上也是可以的。2楼,3楼是对的,只要domain设成.abc.com就行了。
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 14 楼 iamniguding 的回复:
从需求上讲,应该是一个单点登录的案例, 从技术角度讲,要实现cookies共享,必须是同域,那么a.xxx.com和b.xxx.com有相同的父域, 也就是在手工写入cookies时,domain取父域的名称.
是的 我问的就是这个问题 a.abc.com b.abc.com 是二级域名 域名是 www.abc.com 但是这三个项目都不在同一服务器上 是否能做到共享呢 = -= 谢谢了
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 13 楼 jshi123 的回复:
这个应该用权限管理来做,所有子系统登陆都重定向到abc.com顶级域去登陆, 登陆后abc.com给客户发放身份证明存在cookie中,这个cookie可以在子系统共享 子系统拿到cookie后,从权限表中判断用户有没有权限访问该子系统。
因为有专门的测试 人事 资产 金融公司 在总公司 才会有erp的登录权限 其余子公司 只有 1-2个子项目的路径 所以 不能写到erp上去
iamniguding 2014-08-09
  • 打赏
  • 举报
回复
从需求上讲,应该是一个单点登录的案例, 从技术角度讲,要实现cookies共享,必须是同域,那么a.xxx.com和b.xxx.com有相同的父域, 也就是在手工写入cookies时,domain取父域的名称.
jshi123 2014-08-09
  • 打赏
  • 举报
回复
这个应该用权限管理来做,所有子系统登陆都重定向到abc.com顶级域去登陆, 登陆后abc.com给客户发放身份证明存在cookie中,这个cookie可以在子系统共享 子系统拿到cookie后,从权限表中判断用户有没有权限访问该子系统。
jshi123 2014-08-09
  • 打赏
  • 举报
回复
那为什么登陆到oa的cookie要共享给固定资产呢?
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 9 楼 jshi123 的回复:
或者你能让用户访问abc.com,问题就简单了,在abc.com中的页面可以设置cookie是可以在a.abc.com和b.abc.com间共享的。
= =说明白就是 abc.com 是erp a.abc.com 是 oa b.abc.com 是固定资产管理 还有其他的项目 并不知道 有些人 可以登录到 a和b 但是不能登录到 erp 能登录erp的并不一定能登录所有的子项目
jshi123 2014-08-09
  • 打赏
  • 举报
回复
引用 8 楼 shengguang1587 的回复:
我的几个二级域名网站 都是需要登录才能进入的 问了没办法提供一个写值的接口
你可以设定特定的页面不需要登陆就行了,比如 <location path="setcookie.js.aspx"> <authorization> <allow users="*" /> </authorization> </location>
jshi123 2014-08-09
  • 打赏
  • 举报
回复
或者你能让用户访问abc.com,问题就简单了,在abc.com中的页面可以设置cookie是可以在a.abc.com和b.abc.com间共享的。
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 7 楼 jshi123 的回复:
举个例子: 客户访问 b.abc.com/login.aspx login.aspx判断用户身份合法后,首先按正常流程写入cookie(domain为b.abc.com),然后加上: .ClientScript.RegisterClientScriptInclude("", "http://a.abc.com/setcookie.js.aspx?cookie=" + cookie的值); 然后在a.abc.com中添加一个setcookie.js.aspx页面,在Page_Load中: string cookieValue = Request["cookie"]; var cookie = new HttpCookie() ... // 把cookie写到客户端 这样客户端浏览器就有两个cookie,分别属于a.abc.com和b.abc.com,它们的值相同。
我的几个二级域名网站 都是需要登录才能进入的 问了没办法提供一个写值的接口
jshi123 2014-08-09
  • 打赏
  • 举报
回复
举个例子: 客户访问 b.abc.com/login.aspx login.aspx判断用户身份合法后,首先按正常流程写入cookie(domain为b.abc.com),然后加上: .ClientScript.RegisterClientScriptInclude("", "http://a.abc.com/setcookie.js.aspx?cookie=" + cookie的值); 然后在a.abc.com中添加一个setcookie.js.aspx页面,在Page_Load中: string cookieValue = Request["cookie"]; var cookie = new HttpCookie() ... // 把cookie写到客户端 这样客户端浏览器就有两个cookie,分别属于a.abc.com和b.abc.com,它们的值相同。
圣光麦造 2014-08-09
  • 打赏
  • 举报
回复
引用 5 楼 jshi123 的回复:
可以在访问b.abc.com中domain时候,让客户端访问一下a.abc.com中domain,把cookie值作为参数传过去,由a.abc.com中domain负责写到cookie中。
我不确定 有6个二级页面 不确定哪个会写进去 看来还是得斟酌一下解决方案~~
加载更多回复(5)

111,083

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧