当前位置: 首页 > 图文教程 > .Net技术 > ASP.NET > ASP.NET:网络上实现单点登录

ASP.NET
浅谈如何在ASP.NET中了解LINQ语句性能
MRS实现和扩展一个Service Contract
ASP.NET:ASP.NET创建Web服务之声明XML Web服务
ASP.NET:asp.net中常用的一些小技巧
ASP.NET:ASP.NET 数据库缓存依赖
ASP.NET:.NET监控技术应用与分析
Asp.net:Asp.net多语言
ASP.NET:asp.net中接口和抽象类及区别概述
ASP.NET:小编谈理解.NET委托和事件
ASP.NET:小编浅谈asp.net(500) 内部服务器错误解决方法
ASP.NET:C#.Net程序开发中的Socket介绍
ASP.NET:小编浅述面向接口的编程
ASP.NET:.Net参数基础论
ASP.NET:小议枚举类型
ASP.NET:小编浅谈.NET多态中的重写与重载
ASP.NET:浅谈.NET垃圾回收机制(GC)
ASP.NET:ASP.NET中把彩色图片变成黑白图片
ASP.NET:ASP.NET中配置文件的加密与解密
ASP.NET:ASP.NET实现用户第二次访问网站不用提交信息
ASP.NET:ASP.NET利用Cookie处理网上重复投票

ASP.NET:网络上实现单点登录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 415 ::
收藏到网摘: n/a

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

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

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

实现关键代码如下:

Protected void btnLogin_Click(object sender,EventArgs e)

{

    Int i=this.checkLogin(txtName.Text,txtPwd.Text);

    If(i>0)

    {

        String str_Key =txtName.Text+”_”+txtPwd.Text;

        //得到Cache中的给定str_Key的值

        String str_User=Convert.ToString(Cache[str_Key]);

        //Cache中如果没有str_Key的项目,那么用户没有登录

        If(str_User==String.Empty)

        {

           //TimeSpan构造函数,用来判断是否登录

           TimeSpan SessTimeOut = new TimeSpan

(0,0,HttpContext.Current.Session.Timeout,0.0);

HttpContext.Current.Cache.Insert(str_Key,str_Key,null,DateTime.MaxValue,SessTimeOut,CacheItemPriority.NotRemovable,null);

Session[“User”]=str_Key;

//首次登陆成功

ResponseWrite(“<h2 style=’color:red’>你好,登录成功!”);

 

        }

        Else

{

  //Cache中存在该用户的记录,表明已经登录过,禁止再次登录

  Response.Write(“<h2 style=’color:red’>抱歉,您已经登录了!”);

  Return ;

 

}

    }

Else

{

   Response.Write(“用户名或密码错误!!!”);

}

}