每当点击退出按钮的时候,页面上创建N个隐藏的iframe,N的数量为你要退出的业务系统的数量,每个iframe里面的src指定为相应业务系统的退出页面,如:http://A/logout.aspx,http://B/logout.jsp
当然这个前提是要你首先要维护好每个业务系统的退出地址以及当前用户所登录的业务系统列表
在清空了B、C的 session 后,然后再清空 A 的 session,然后关闭 A 页面。
请问,你如何“清空 A 的 session”?
A的session直接删了就可以了。但是怎么清空B、C的session呢?是用回调页面还是什么其它的方法?
@sym_cn: 怎么直接删除?是对着页面喊一句“删除 session” 就行了吗?
@Launcher: 在后台将session赋值为null
@sym_cn: 请问,你的代码中的什么语句体现出了“在后台将session赋值为null”?
在三个业务系统当中分别添加一个请求处理页面,当A点击退出时,ajax分别提交请求到B。C 去处理,当两个都成功后,再销毁A会话。
B和C要怎么写呢?
@sym_cn: 比如你提交请求到两个,附带个账号信息,然后去遍历Session.Contents,匹配账号,然后清空
@光明中的黑手: 我怎么提交请求呢?能给个例子么?A怎么提交请求,B怎么写?谢谢
@sym_cn: 这个东西前台的话 就直接ajax去请求啊,后台就用模拟webrequest去请求
@光明中的黑手: B和C就用ashx或action清空session?
@sym_cn: 可以这么理解,指向一个能处理的地址就行
用signalr可以做到吧~
为什么A、B、C还有自己的Session,不是由单点登录服务器统一管理的么。
单点登录已经实现这个了。
大概思路是:
假如在A登录,跳转到B 、 C则在SSO服务器保存一份该token对应的服务器列表,也就是ABC,同时ABC需要提供一个功能,清空本系统内的token即可。
ABC的功能怎么实现呢?