zoukankan      html  css  js  c++  java
  • ASP.NET网络上实现单点登录

    单点登录(Single Sign On)简称SSO,是目前比较流行的企业业务整合的解决方案之一。在开发企业门户网站或电子商务系统时,设计一个用户只能在同一网站进行惟一登录的功能。

    Cache对象主要用于Web应用程序的缓存。对于每个应用程序都需要创建Cache对象的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效,有关Cache对象实例的所有信息都须通过HttpContext对象的Cache属性或Page对象的Cache属性来提供。

    本实例中,把用户的登录信息保存在Cache对象中,并设置过期时间为Session变量失效的时间,因此,一旦Session变量失效,Cache对象也就过期了;但Cache对象对所有的用户还可以访问,因此,用它保存用户信息比数据库来得方便。

    实现关键代码如下:

    代码
     1 protected void btnLogin_Click(object sender, EventArgs e) 
     2     { 
     3          int i = this.checkLogin(txtName.Text,txtPwd.Text); 
     4          if (i> 0
     5          { 
     6              string str_Key = txtName.Text + "_" + txtPwd.Text; 
     7              // 得到Cache中的给定str_Key的值 
     8              string str_User = Convert.ToString(Cache[str_Key]); 
     9              // Cache中如果没有str_Key的项目,那么用户没有登录 
    10              if (str_User == String.Empty) 
    11              { 
    12                  // TimeSpan构造函数,用来判断是否登录。 
    13                    TimeSpan SessTimeOut = new TimeSpan(0,0,HttpContext.Current.Session.Timeout,0,0); 
    14                  HttpContext.Current.Cache.Insert(str_Key,str_Key,null,DateTime.MaxValue,SessTimeOut,acheItemPriority.NotRemovable,null); 
    15                  Session["User"= str_Key; 
    16                  // 首次登录成功 
    17                    Response.Write("<h2 style='color:red'>你好,登录成功!"); 
    18              } 
    19              else 
    20              { 
    21                  // 在 Cache 中存在该用户的记录,表名已经登录过,禁止再次登录 
    22                  Response.Write("<h2 style='color:red'>抱歉,您好像已经登录了!"); 
    23                  return
    24              } 
    25          } 
    26          else 
    27          { 
    28              Response.Write("用户名称或密码错误!!!"); 
    29          } 
    30      }

     

    作者:90后de分享自留地 出处:http://www.90hou.net 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    深入理解Java:注解(Annotation)自定义注解入门
    Java基础之理解Annotation
    junit常用注解详细说明
    能判断是电脑端还是手机端的javascript
    Ext.js多文件选择上传,
    StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
    FileItem类的常用方法(关于文件上传的)
    js保留小数点后面几位的方法
    如何将div中的内容设置为空同时还要保留div本身
    使用html中的<input>标签上传多个文件(转)
  • 原文地址:https://www.cnblogs.com/tian/p/1715473.html
Copyright © 2011-2022 走看看