重构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 }
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");
}
}
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
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

浙公网安备 33010602011771号