ASP.NET实现单点登录方法

出自:【孟宪会之精彩世界】 发布日期:2005年1月27日 8点48分0秒 [有删改] 
由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在ASP.NET中实现单点登录其实很简单,下面就把主要的方法和全部代码进行分析。  
实现思路  
利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。  
SingleLogin.aspx代码  
<%@ Page language=”c#” Codebehind=”SingleLogin.aspx.cs” AutoEventWireup=”false” 
 Inherits=”eMeng.Exam.SingleLogin” %> 
 

 

 

 

 

 

 

 

 

   

    

单点登录测试

 

    

用户名称:

 

    

用户密码:

 

    

 

 

    

 

 

   

 

 

  

SingleLogin.aspx.cs代码  

using System; 

using System.Collections; 

using System.ComponentModel; 

using System.Data; 

using System.Drawing; 

using System.Web; 

using System.Web.SessionState; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.HtmlControls;  

namespace eMeng.Exam 



///   

/// SingleLogin 的摘要说明。 

/// 实现单点登录 

///  

public class SingleLogin : System.Web.UI.Page 



protected System.Web.UI.WebControls.TextBox UserName; 

protected System.Web.UI.WebControls.TextBox PassWord; 

protected System.Web.UI.WebControls.Label Msg; 

protected System.Web.UI.WebControls.Button Login;  

private void Page_Load(object sender, System.EventArgs e) 



}  

#region Web 窗体设计器生成的代码 

override protected void OnInit(EventArgs e) 



  InitializeComponent(); 

  base.OnInit(e); 

}  

///   

/// 设计器支持所需的方法 – 不要使用代码编辑器修改 

/// 此方法的内容。 

///  

private void InitializeComponent() 



  this.Login.Click += new System.EventHandler(this.Login_Click); 

  this.Load += new System.EventHandler(this.Page_Load); 



#endregion  

private void Login_Click(object sender, System.EventArgs e) 



  // 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。 

  // 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。  

  // 生成Key 

  string sKey = UserName.Text + “_” + PassWord.Text; 

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

  string sUser = Convert.ToString(Cache[sKey]); 

  // 检查是否存在 

  if (sUser == null || sUser == String.Empty) 

  { 

    // Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时 

    // 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。 

    TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0); 

    HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut, 

      System.Web.Caching.CacheItemPriority.NotRemovable,null); 

    Session[“User”] = sKey; 

    // 首次登录,您可以做您想做的工作了。 

    Msg.Text=” 嗨!欢迎您访问 www.21asp.net”; 

    Msg.Text += “,祝您浏览愉快!:)”; 

  } 

  else 

  { 

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

    Msg.Text=” 抱歉,您好像已经登录了呀:-(”; 

   return; 

  } 





}  

 

转载请注明:代码学堂>编程开发 > ASP.NET > ASP.NET实现单点登录方法

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

磊宇堂 » ASP.NET实现单点登录方法

提供最优质的资源集合

立即查看 了解详情