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

  • 相关阅读:
    IDEA插件之 CodeGlance(无需滚动的代码地图)
    【翻译】面向自然语言处理的深度学习(一)
    如何估算神经网络参数占用多少内存或显存容量
    Latex向上向下取整语法 及卷积特征图高宽计算公式编辑
    自动测试LeetCode用例方法
    C# Wpf 文件保存对话框
    YOLO实践初探
    前中后序递归遍历树的体会 with Python
    Python 中日期函数
    Tensorflow Windows安装
  • 原文地址:https://www.cnblogs.com/jake1/p/sso_loginout.html
Copyright © 2011-2022 走看看