用代理类实现Cookie跨站共享

原创 2007年09月21日 11:34:00

其实Cookie跨站点共享是很简单的,只要两个站点在同一级目录底下,则其中一个站点的COOKIE就能被另一个站点所引用.即它们的DOMAIN属性是一样的.比如我F盘上有两个站点,一个是用户系统,一个是新闻系统.我想实现就是在用户系统登录之后不用再重新登录新闻系统就能直接进新闻系统.即常说的单点登录.

用户系统中有个WEB服务,服务里有个验证用户登录的方法.使用该方法.当用户登录成功后,就创建一个COOKIE保存用户名和密码.然后新闻系统中就可以直接访问这个COOKIE.因为它们属于同一个域.

最主要的地方来了,虽然可以访问这个COOKIE,但是要我们要清楚一点,COOKIE是在客户端保存的,即可以从客户端修改COOKIE中的内容,所以服务器端始终得对客户端传递来的COOKIE持怀疑态度,不能相信这个COOKIE一定是服务器端原始传送过去的COOKIE.所以要对这个COOKIE进行验证.

可能上面说的很不清楚,我再举个例子.就像CSDN一样,你在登录的时候可以选择保存两周不用重复登录.你不用再输入用户名和密码登录了,但是服务器端并不是不验证你的用户名和密码了,它还是要验证用户名和密码的.而只不过改成读取你COOKIE文件里的用户名和密码了.如果你手动修改保存在你硬盘上的COOKIE中的用户名和密码的话,如果不正确的话,还是要失败的.

下面来讲下怎么对COOKIE进行验证.如果是在用户系统中对COOKIE中的用户名和密码进行验证那是很简单的.因为用户系统的数据库中存在一个用户表,可以直接读取COOKIE中的用户名和密码然后去数据库中进行匹配.

而现在的问题是要在新闻系统中验证COOKIE中的用户名和密码,而新闻系统中根本没有用户表.所有用户都是通过用户系统单点登录的.

这时候关键来了,还记得前面说的用户系统中的那个WEB服务吗?没错,就是它了,我们在新闻系统的站点目录上点击右键,选择添加WEB引用,然后选择这个WEB服务,系统就会自动给这个WEB服务生成代理类.然后我们就可以直接使用用户系统的这个WEB服务里的验证用户登录的方法了.

为了以后方便查询,特地写到BOLG上来,只是我的一些想法,表达的不是很清楚,希望多多见谅. 

解决nginx使用proxy_pass反向代理时,cookie丢失的问题

1. 如果只是host、端口转换,则cookie不会丢失。例如:     location /project {         proxy_pass   http://127.0.0.1:808...
  • we_shell
  • we_shell
  • 2015年04月20日 18:27
  • 20129

利用jquery和jsonp来获取跨站数据,并实现cookie共享

一般js是不跨域的,但是有的时候我们得通过跨域让cookie共享, 所以,我们就可以上用jquery来做了. 客户端如下: 1 2 3 4 5 6 7 8 9 1...

工商代理类网站建站系统

  • 2013年04月11日 17:00
  • 9.04MB
  • 下载

Cookie Session跨站无法共享问题(单点登录解决方案)

单点登录什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录。 一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注...
  • wtopps
  • wtopps
  • 2017年07月12日 19:31
  • 554

工商代理类公司建站之星授权

  • 2013年05月20日 10:45
  • 9.04MB
  • 下载

动态代理类实现原理及实例

转自:http://wangxin520m.blog.163.com/blog/static/42957546201321943726629/ 首先导入JUnit4包,用于测试,方法: 在项目上点...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用代理类实现Cookie跨站共享
举报原因:
原因补充:

(最多只允许输入30个字)