同一局域网里,不同服务器的项目,项目之间怎么通过cookie传值

jayloj 2010-09-09 05:03:22
同一局域网里,不同服务器的项目怎样通过cookie传值呢?
假如有项目a,项目b。用户从项目a登录成功后,用户信息保存在cookie中,从项目a中由一个连接地址转到项目b中,那么在项目b中可以获取到用户cookie值吗?
因为项目a和项目b不用整合,所以不需用cas单点登录;项目a和项目b不在同一服务器下,用cookie.setPath()不管用;项目a和项目b都是直接通过局域网ip地址访问,cookie1.setDomain()不知怎么处理?!;使用了p3p跨域处理cookie好像也不行。
请各位指点下。。。。。非常感谢。。。。
...全文
548 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
kjanes 2010-09-11
  • 打赏
  • 举报
回复
可以通过socket传过去。
kokobox 2010-09-10
  • 打赏
  • 举报
回复
只要域名相同就都可以拿到。 如果域名不同的话就拿不到。

就这么简单。

shower 2010-09-10
  • 打赏
  • 举报
回复
cookie的四个可选属性:
1 cookie的生存期属性:expires;默认情况下,cookie只在浏览器会话期存在.退出浏览器就丢失;可以用expires设置时间;退出浏览器后就不会丢失并存为客户端浏览器的cookie文件;过了时间后cookie失效,还会自动删除cookie文件.
2 path属性:默认情况下,在同一个目录下文件可以调用;例如:http://http://javatalk.OK8.ME/t1/1.html设置的cookie可以被http://http://javatalk.OK8.ME/t1/2.html调用.但不能被http://hanj.com/t2/目录下的文件调用;但如把path属性设成"/";则在http://http://javatalk.OK8.ME/下的所有文件都可调用此cookie.
3 domain属性:例如设成".javatalk.OK8.ME"则在.javatalk.OK8.ME下的所有服务器下的文件都可以调用cookie.
4 安全属性:默认情况下为false;用http协议不安全传输;true:用https等协议安全传输.

结合着你的项目,应该可以解决。
beiouwolf 2010-09-10
  • 打赏
  • 举报
回复
你要做这么复杂的动作么,就索性再搞一台数据服务器吧
专门处理共享数据
jayloj 2010-09-10
  • 打赏
  • 举报
回复
基于cookie的单点登录的系统,第一次登录cookie生成是在服务器端,读取cookie也是在客服端。。。根本都没跨服务器传递cookie值。

现在我的情况是,两套系统都用了单点登录,都是客服端,只是他们的服务端是不同的。。。。。

[Quote=引用 18 楼 kstring 的回复:]
设置中转服务器,a服务器和b服务器统一从c服务器取信息,c记录和读取cookie值。
你可以Google下 基于cookie的单点登录 里边说的很详细
[/Quote]
tczhangyang 2010-09-10
  • 打赏
  • 举报
回复
为以后留个标记 谢谢
kString 2010-09-10
  • 打赏
  • 举报
回复
设置中转服务器,a服务器和b服务器统一从c服务器取信息,c记录和读取cookie值。
你可以Google下 基于cookie的单点登录 里边说的很详细
jayloj 2010-09-10
  • 打赏
  • 举报
回复

这个比较比较麻烦,希望是直接通过cookie在页面用js直接获取值,
不想经过后台处理。。
[Quote=引用 15 楼 wiloveryou123456789 的回复:]
不知道能不能呢个用 webservice ,。。。。。

一段 读出来。。。另一端接收。。。
[/Quote]
jayloj 2010-09-10
  • 打赏
  • 举报
回复
cookie里面好像没有URL属性吧...如果两个项目都是在同一个服务器下的,那么cookie.setPath("/")之后,就可以互相传值,但是问题两个项目之间不同服务器。setPaht根本没有。。。还有你说直接传值,怎么传呢?能不能给个例子出来。。。

[Quote=引用 13 楼 bai_feng 的回复:]
cookie存在于客户端,而其中有URL,maxAge等属性,URL就是指向特定的服务器地址发送请求才会带上该cookie,如果不写则会在所有服务器都带上,上面说的读取到所有的cookie不安全,关键是别的服务器读取到了也没用,因为不知道该cookie的作用。所以在两个项目间的的传递直接请求就可以得到Cookie了。
[/Quote]
androidmvc 2010-09-10
  • 打赏
  • 举报
回复
不知道能不能呢个用 webservice ,。。。。。

一段 读出来。。。另一端接收。。。
海会圣贤 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jayloj 的回复:]
当然是写程序处理啊,但是怎么把cookie值传过去。。。

引用 1 楼 zhang116868 的回复:
你写程序处理吧,把cookie值传过去。
[/Quote]

用URL传值或是session啊。
kokobox 2010-09-10
  • 打赏
  • 举报
回复
如果是同一个域下的话,就应该可以。都是用一个ip也可以。

在保存cookie的设置域路径为"/" 根,就可以了。

jayloj 2010-09-10
  • 打赏
  • 举报
回复

没有什么域名的,就是同一局域网里,用ip访问系统的。。。。

[Quote=引用 23 楼 kokobox 的回复:]
只要域名相同就都可以拿到。 如果域名不同的话就拿不到。

就这么简单。
[/Quote]
bai_feng 2010-09-10
  • 打赏
  • 举报
回复
cookie存在于客户端,而其中有URL,maxAge等属性,URL就是指向特定的服务器地址发送请求才会带上该cookie,如果不写则会在所有服务器都带上,上面说的读取到所有的cookie不安全,关键是别的服务器读取到了也没用,因为不知道该cookie的作用。所以在两个项目间的的传递直接请求就可以得到Cookie了。
龙四 2010-09-09
  • 打赏
  • 举报
回复
要是不同的url都能读所有的cookie,岂不是很不安全,浏览器肯定不允许这么做的
jeky_zhang2013 2010-09-09
  • 打赏
  • 举报
回复
客户端存了cookie,也是只能对特定的服务器的服务吧,换个服务器,这个就没效了吧
duoduo6153 2010-09-09
  • 打赏
  • 举报
回复
cookie是保存在客户端的,不依赖于服务器,所以,你的另一个项目仍然可以取得cookie,只要这个cookie还有生命周期,取得cookie的方法是一样的。
jayloj 2010-09-09
  • 打赏
  • 举报
回复
不是这个意思啊,保存和读取cookie肯定知道,问题是两个cookie在两个项目中怎么传递、。。。。

[Quote=引用 8 楼 super_stan 的回复:]
Post.htm页面:

JScript code
<input type="text" name="txt1">
<input type="button" value="Post">
<script language="javascript" >
function setCookie(name,value)
{
/*
*--------------- setCoo……
[/Quote]
super_stan 2010-09-09
  • 打赏
  • 举报
回复
Post.htm页面:

JScript code
<input type="text" name="txt1">
<input type="button" value="Post">
<script language="javascript" >
function setCookie(name,value)
{
/*
*--------------- setCookie(name,value) -----------------
* setCookie(name,value)
* 功能:设置得变量name的值
* 参数:name,字符串;value,字符串.
* 实例:setCookie('username','baobao')
*--------------- setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 将被保存 30 天
  var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
location.href = "Read.htm"; //接收页面.
}
</script>




Read.htm 页面:

JScript code
<script language="javascript" >
function getCookie(name)
{
/*
*--------------- getCookie(name) -----------------
* getCookie(name)
* 功能:取得变量name的值
* 参数:name,字符串.
* 实例:alert(getCookie("baobao"));
*--------------- getCookie(name) -----------------
*/

var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>

jayloj 2010-09-09
  • 打赏
  • 举报
回复
现在问题是在一个项目中写cookie,在另外一个不同服务器的项目读取不到。。。。

[Quote=引用 6 楼 dr_lou 的回复:]
引用 5 楼 dr_lou 的回复:
写cookie同时向一个公共资源写相同的内容,然后两边都读吧。


sorry,理解错题意了。我认为只要是你写的cookie,你就能读吧。不管是多少个工程。
[/Quote]
加载更多回复(6)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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