在ASP.NET 中实现单点登录__教程 |
|
日期:2007-5-20 1:26:01 人气:68 [大 中 小] |
|
|
|
由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在ASP.NET中实现单点登录其实很简单,下面就把主要的方法和全部代码进行分析。
实现思路
利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。
查看示例
SingleLogin.aspx代码
<%@ Page language="c#" Codebehind="SingleLogin.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.SingleLogin" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>单点登录测试</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta http-equiv="Author" content="孟子E章"> <meta http-equiv="WebSite" content="http://dotnet.aspx.cc/"> <style> H3 { FONT: 17px 宋体 } INPUT { FONT: 12px 宋体 } SPAN { FONT: 12px 宋体 } P { FONT: 12px 宋体 } H4 { FONT: 12px 宋体 } </style> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <div align="center"> <h3>单点登录测试</h3> <p>用户名称:<asp:TextBox id="UserName" runat="server"></asp:TextBox></p> <p>用户密码:<asp:TextBox id="PassWord" runat="server" TextMode="Password"></asp:TextBox></p> <p><asp:Button id="Login" runat="server" Text=" 登 录 "></asp:Button></p> <p><asp:Label id="Msg" runat="server"></asp:Label></p> </div> </form> </body> </HTML>
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 { /// <summary> /// SingleLogin 的摘要说明。 /// 实现单点登录 /// </summary> 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) { // 实际例子可访问: // http://dotnet.aspx.cc/Exam/SingleLogin.aspx }
#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); }
/// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Login.Click += new System.EventHandler(this.Login_Click); |
|
出处:本站原创 作者:佚名 |
|
|