• 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

  • 相关阅读:
    C语言I博客作业07
    C语言I 博客作业03
    我的第一次作业
    C语言I博客作业05
    js闭包在你身边却不知
    浅谈SQL Transaction在请求中断后的行锁表锁
    事件订阅分发模型
    js 继承 对象方法与原型方法
    PHP学习笔记有关php中的变量
    PHP学习笔记不同编码占据不同的字节
  • 原文地址:https://www.cnblogs.com/jake1/p/sso_loginout.html
Copyright © 2020-2023  润新知