如何使用Cookie实现跨域的单点登录

zy35147972122 2012-09-03 09:33:20
如题,我有几个asp.net 的程序,我将几个程序部署到服务器上,由于客户的需求,所以将几个程序分别部署在同一台主机分配出来的两个虚拟机上,域名分别为http://spjg.sipac.gov.cn,http://jsms.sipac.gov.cn。
例如:程序A部署在http://spjg.sipac.gov.cn上,地址为http://spjg.sipac.gov.cn/程序A
程序B部署在http://jsms.sipac.gov.cn上,地址为http://jsms.sipac.gov.cn
现在又需要实现一个程序登陆有保存用户信息到客户端,并在其他程序中使用,访问其他程序的登陆页面时如果信息正确就自动登陆
我想请问如果我这样写是否有用:
Response.Cookies( "UserInfo").Domain = "sipac.gov.cn"
我是否能够在程序A中访问程序B的Cookie,或者在B中访问A的Cookie
...全文
578 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy35147972122 2012-09-03
  • 打赏
  • 举报
回复
如果像2楼提供的方式实现,能不能给我一个简单的示例代码
zy35147972122 2012-09-03
  • 打赏
  • 举报
回复
1楼的回答是答非所问啊,我知道怎么设置,但是我怕我所描述的情况下A不能获取B的Cookie
2楼提供的方法有点复杂,主要是我对jsonp不了解,

而且程序A和程序B用的是两套完全没有关联的登陆机制,我是通过调用登陆接口将用户信息保存到Cookie中,之后每隔程序去获取cookie中自己所需要的用户信息并实现登陆
所以我想知道的是向我上面的那种情况下是否能够跨域获取Cookie
zy35147972122 2012-09-03
  • 打赏
  • 举报
回复
1楼的回答是答非所问啊,我知道怎么设置,但是我怕我所描述的情况下A不能获取B的Cookie
2楼提供的方法有点复杂,主要是我对jsonp不了解,

而且程序A和程序B用的是两套完全没有关联的登陆机制,我是通过调用登陆接口将用户信息保存到Cookie中,之后每隔程序去获取cookie中自己所需要的用户信息并实现登陆
所以我想知道的是向我上面的那种情况下是否能够跨域获取Cookie
yangxxxxxx66 2012-09-03
  • 打赏
  • 举报
回复
参考
http://developer.51cto.com/art/201104/255729.htm
  • 打赏
  • 举报
回复
在指定的域下写入想要的Cookie
'创建Cookie
Response.Cookies( "MyCookie ").Expires=Date+365
Response.Cookies( "MyCookle ").Domain= "mydomaln.com "
Response.Cookies( "MyCookle ")( "Username ")=strUsername
Response.Cookies( "MyCookle ")( "Password ")=strPassword
读写cookie非常简单,上面的代码创建一个cookie并给cookie设置属性:域、过期时间,以及其他一些保存在cookie中的值。这里,strUsename,strPassword是在前面某个地方设置的变量。然后,通过下面的语句在cookie中读取。
'读取Cookie
datExpDate=Request.Cookies( "MyCookie ")
strDomaln=Request.Cookies( "MyCookle ").Domain
strUsername=Request.Cookies( "MyCookle ")( "Username ")
strPassword=Request.Cookies( "MyCookie ")( "Password ")
  • 打赏
  • 举报
回复
cookie是用来在某一个域下使用的,比如在.baidu.com这个域下种一个cookie,那么.google.com这个域就不能使用它;这是浏览器出于对用户隐私保护的考虑。要实现跨域的一个思路就是:客户端浏览器对某些html标签(比如script、iframe)的src没有进行跨域限制,用它们以GET方式夹带本域种的cookie值动态请求外域的程序,这个外域的程序来种植该域的值为GET参数传过去的cookie,从而达到互通的目的

站点A登录的时候,可以想另外的站点B发送带cookie的请求,站点B得到请求后,写入自己的Cookie

http://xiaolele.iteye.com/blog/666434
IT老姜 2012-09-03
  • 打赏
  • 举报
回复
而且程序A和程序B用的是两套完全没有关联的登陆机制,我是通过调用登陆接口将用户信息保存到Cookie中,之后每隔程序去获取cookie中自己所需要的用户信息并实现登陆
所以我想知道的是向我上面的那种情况下是否能够跨域获取Cookie
IT老姜 2012-09-03
  • 打赏
  • 举报
回复
参考
http://developer.51cto.com/art/201104/255729.htm

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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