重构Session

大家在做web开发的时候,经常会用到Session,最常用的就是登录功能了。
用户登录后,Session["LoginName"]="userName";
在其他页面再进行Session["LoginName"]的判断,用户状态是否过期等等。
如果很多个页面,我们每个页面都要进行判断,岂不是要累死!

 

我们可以用下面的方法来简化我们的工作:
1、添加一个BasePage类,System.Web.UI.Page,用此类来进行Session的判断
2、其他页面来继承BasePage
代码如下:

BasePage类代码
 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Web;
 5 using System.Web.Security;
 6 using System.Web.UI;
 7 using System.Web.UI.HtmlControls;
 8 using System.Web.UI.WebControls;
 9 using System.Web.UI.WebControls.WebParts;
10 
11 /// <summary>
12 ///BasePage 的摘要说明:
13 ///基类页面,需要用到Session的页面需要继承此页面
14 /// </summary>
15 public class BasePage:System.Web.UI.Page
16 {
17     public BasePage()
18     {
19         //
20         //TODO: 在此处添加构造函数逻辑
21         //
22     }
23 
24     /// <summary>
25     /// 当前的登录用户
26     /// </summary>
27     public string CurrentUsersName
28     {
29         get
30         {
31             return (HttpContext.Current.Session["UserName"!= null ? HttpContext.Current.Session["UserName"].ToString() : string.Empty);
32         }
33         set
34         {
35             HttpContext.Current.Session["UserName"= value;
36         }
37     }
38 }

 

 

登录窗体 拖放一个TextBox :txtUserName 和一个 Button:btnLogin

后台cs代码:

登录窗体cs代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class Login : BasePage
{
    
protected void Page_Load(object sender, EventArgs e)
    {
       
    }
    
protected void btnLogin_Click(object sender, EventArgs e)
    {
        
this.CurrentUsersName = this.txtUserName.Text;
        Response.Redirect(
"Default.aspx");
 
    }
}

 

 

两个Defualt测试页面

后台cs代码:

测试页面cs代码
 1 using System;
 2 using System.Configuration;
 3 using System.Data;
 4 using System.Web;
 5 using System.Web.Security;
 6 using System.Web.UI;
 7 using System.Web.UI.HtmlControls;
 8 using System.Web.UI.WebControls;
 9 using System.Web.UI.WebControls.WebParts;
10 
11 public partial class Default : BasePage
12 {
13     protected void Page_Load(object sender, EventArgs e)
14     {
15         if (String.IsNullOrEmpty(CurrentUsersName))
16         {
17             Response.Write("<a href='Login.aspx'>请重新登录</a>");
18         }
19         else
20         {
21             Response.Write(CurrentUsersName);
22         }
23     }
24 }
25 

 代码下载:https://files.cnblogs.com/love_study/RefactoringSession.rar

 

posted @ 2010-02-03 16:36  闭着眼睛想  阅读(247)  评论(0)    收藏  举报