【SSO】--实现单点登录研究过程总结

 

一、单点登录实现结果:

权限系统登录后,新生系统通过拦截器,获取本地的cookie可以访问该系统;权限系统用户注销后,销毁本地cookie,访问新生链接,自动跳转到登录首页。

 

二、主要遇到的问题:

实现本地cookie的跨域共享

 

三、解决方案:

1. 在url地址后面加一个票据ticket=guid,然后把ticket存入到缓存中,拦截器对权限进行拦截的时候,,获取ticket后面的参数,跟本地的缓存做对比,判断是否可以登录。

失败原因:普通的类里面无法获取浏览器的地址和参数。

 

2. 把用户信息存入到本地cookie,  memacache作为第三方缓存,权限验证的时候进行本地cookie和memacache的用户登录信息验证。

失败原因:存入memacache的cookie无法取出。

 

3. 通过IO流,把用户信息存入到本地,让子系统登录时拦截器拦截的时候获取IO流里面的用户验证信息。

失败原因:子系统无法监测到存有用户信息的txt文件。

 

4. 存入cookie,通过权限filter的 Var memberValidation = filterContext.HttpContext.Request.Cookies.Get("selfUserInfo");获取本地cookie,能够实现本地cookie信息的验证。

 

 

                                                                                            V1.0

 

   

                                                                                            V2.0

 

 

四、感受:

1. 学会站在巨人的肩膀上。

一开始想要全部手写CAS,不过偶然间发现MVC自带登录生成票据的方法,通过底层学习了这些方法,不怕不知道,就怕不知道

 

2. 黑猫白猫抓住老鼠就是好猫。

单点登录要的结果就是只需登录一个系统,可以访问其他的被信任的系统应用;退出系统,其他应用也随之退出。

不论Java还是.NET,实现这个效果就很好,不一定跟Java的CAS登录完全一样。

 

3. 结对编程效率高。

不同的同学,不一样的思路,结对编程比较不枯燥,目标一致,效率比较高。

 

4.跟大神在一起研究能学到很多东西。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值