cookies跨服务器共享解决方法
最近遇到个sso问题,网上查了很多资料,觉得最简单可行的就是利用cookies共享,看了很多这方面的方法都说很简单(就是设置一下cookies.domain而已),自己动手弄了几天却总是出问题,因为资料里说的都是在同一台服务器上不同项目之间的共享,也没提可以不可以在多级域名不同服务器下共享,而我现在的问题是要解决在不同服务器上的不同项目间共享cookies问题,又没这方面的详细资料,所以甚至怀疑这种情况下可否实现
不断的修改测试,最后还是解决了这个问题.
先说说我的项目:我两个项目在不同服务器SERVER-A 和SERVER-B上,对应的域名分别为http://aa.aaa.aa.com/和http://bb.aaa.aa.com/ 今天的测试虽然程序陷入了死循环页面没办法打开,但是庆幸无意间发现客户断却在这次死循环中B项目的程序读取到了A项目的COOKIES(因为牵扯到cookies域的问题,本地没办法测试,只能在外网不能逐过程的测试,弄了半天,汗``)
其实方法跟网上说的一样,也就仅仅设置一下Cookie.Domain = ".AA.com",这里只要注意一点,不是设置验证票据由FormsAuthentication.RedirectFromLoginPage方法生成的cookies1,而是要自己重新建一cookies2,因为票据方法生成的cookies好象是不能修改的,一修改就失效了,所以我现在的方法是票据单独在每个项目建,但是如果登陆了A服务器,在打开B项目里的页面时如果没有登陆默认是要跳到B项目的登陆页面的,然后我在B项目登陆页的Page_Load事件里加一个读取cookies2的函数,如果cookies2不为空,即为在A项目已经登陆,所以就直接通过B项目的本地验证票据
说得有点乱,不过实现起来其实很简单的`