zoukankan      html  css  js  c++  java
  • sso 的退出

        网页跳转的方式的sso,退出登录的实现会麻烦一点.一开始,我们是在portal站点那里,把所有应用程序的退出都放在portal的退出页面.从实现各个子站点的退出.但后来发现,有时候有些子站点,退不出来.所以后面,我们就改用统一的处理方式,然后ajax统一处理推出.

      其实退出也很简单,就是清理该清理的凭证就行了.我们当时做了一个httphander处理,代码如下.

     1 public class LoginoutHandler : IHttpHandler {
     2     
     3     public void ProcessRequest (HttpContext context) {
     4         try
     5         {
     6             context.Session.Clear();
     7             context.Response.Cookies.Clear();
     8             context.Response.Write("<msg>1</msg>");
     9         }
    10         catch
    11         {
    12             context.Response.Write("<msg>0</msg>");
    13         }
    14       
    15         
    16             
    17             
    18     }
    19  
    20     public bool IsReusable {
    21         get {
    22             return false;
    23         }
    24     }
    25 
    26 }

          关于这个退出,我们也2个方案.一个方案是把所有子站点,通过配置文件的方式保存起来,然后portal退出时,调用所有子站点的退出.但这方案存在2个问题,一是退出时间会比较长.二是退出比较麻烦.每增加一个站点,都增加一个配置. 后面改用另外一种方案. 就是在单点登录跳转中心,记录所有用户曾经跳转过的站点. 然后在站点退出时,调用曾经跳转过的站点的退出接口,而达到统一退出.

         在这里补充一下,因为我们项目模块比较多,一开始经常出现由于某个模块的部署出问题,导致整个potal站点都出问题了.所以后面我们采去iis应用程序部署方案.每一个模块的dll都独立,从而达到互不影响. 但这也造成不少的问题,主要如下,一个是缓存不共享(当时用的企业库的,后来我们采去另外一个缓存组件很好解决了这个问题,将在后面介绍),二是session不共享,因此退出时必须要掉用该模块的退出.

        好,各位,关于单点登录,我就介绍到这里. 

         接下来我将会向大家介绍一下,如何通过url传参数,来解决 window.showModalDialog夸域的技术,从而轻松实现资源共享.希望会对曾经碰到过类似问题的网友有帮助.

     登录代码请看 http://www.cnblogs.com/jake1/archive/2013/04/28/sso_code.html

     登录设计请看 http://www.cnblogs.com/jake1/archive/2013/04/28/sso_page.html

  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/jake1/p/sso_loginout.html
Copyright © 2011-2022 走看看