浅谈Session对象在用户登录页面中的应用

摘 要 登录系统的用户在WEB页面中会话的专用信息可存储于Session对象中。在WEB服务器的内存中保存着Session中的信息,当用户在WEB页面之间跳转时,在Session对象中存储的变量是不会丢失的,一直存在于整个会话过程中,在Session对象中存储的变量在整个网站页面中可以共享。

【关键词】Session对象 会话 存储

Session 对象用来保存用户的信息。在Session 对象中存储的变量保持着单一用户的信息,而且在一个应用程序中的全部页面都是可用的。Session对象只针对单独的网站用户,不同的客户端有自己专门的Session信息,所以不同的客户端不能相互访问,当用户关闭了浏览器或超过了Session对象设定的有效时间时,存储在Session对象中的变量信息就会关闭。

1 Session 对象概念

当用户操作某个应用程序时,打开后做点改变后再关闭,这就很像一次会话,也就是Session。计算机知道用户在何时打开和关闭的应用程序。但是在WEB上,因为HTTP地址不能留存状态,所以WEB服务器不清楚用户是谁和用户做了什么。要解决这个问题,ASP为每个用户创建了一个cookie,这个cookie是唯一的。客户端接收到传来的cookie含有用户的信息。这个接口就称作Session对象。

2 Session对象的属性和方法

(1)属性。TimeOut:设定和传回Session对象变量的有效时间,如果在有效时间内用户没有动作,默认时间为20秒,Session对象就失效了。

(2)方法。Abandon:Session对象中的信息被清除,资源被释放。使用Session对象来定义的变量称为会话变量,Session对象定义变量的格式如下: Session[name]=值;其中name为变量名。

3 存储和取回Session变量

可以在Session 对象中存储变量是它最大的优点,在后面访问页面时可进行读取,范围应用广泛。例如:Session[name]=Textbox1.Text;//将控件Textbox1中的内容保存到Session的变量name中。Textbox1.Text=Session[name].ToString();//将Session[name]的值读取到控件Textbox1中。数据被存入session 变量后,就可以被应用程序的任何页面来调用。例如: Welcome <%Response.Write(Session[“name”])%> ;

4 Session对象在用户登录页面中的应用

(1)制作用户登录页面。创建一个用户登录页面YHLogin.aspx,在页面中拖入两个TextBox控件,分别设置ID为txt1和txt2,用来输入用户名和密码,再拖入一个Button控件,ID设置为btn1,文本设置为“登录”。

(2)在YHLogin.aspx页面中双击“登录”按钮,在btn1_Click()中设置按钮的代码。使用ConfigurationManager类获取数据库的连接字符串,创建数据库连接对象,并打开数据库。

(3)编写查询用户名称的SQL语句,建立SqlCommand对象,设置SQL语句和连接数据库,通过ExecuteReader方法创建DataReader对象。

(4)使用Read()方法判断有无查到记录,登录成功后用Session对象保存用户名和用户身份等信息,代码如下:

if (dr.Read()) //判断有无读到记录

{

if (dr["UserPwd"].ToString() !=txt2.Text) //判断密码是否正确

{

//进行密码不正确提示

this.ClientScript.RegisterClientScriptBlock(this.GetType(),"alert", "<script>alert("密码不正确!")</script>");

}

else

{ //把用户名保存在Session对象中

Session["UserAdmin"] = txt1.Text;

Response.Redirect("admin/UserAdd.aspx");

}

else

{

//用户名不存在进行提示

this.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert("用户名不存在!")</script>");

}

(5)关闭DataReader对象和数据库连接。Session和客户端的浏览器是有关系,不同的浏览器服务器被打开使用的Session数据不同。浏览器关闭后,前面使用Session保存的登录状态就无法使用了,需要新的Session数据,因此要重新登录,重新保存Session数据。

参考文献

[1]陈骙.理解Session的新思路——类比法[J].现代商贸工业,2009(02).

[2]肖静波.基于Session的用户权限管理实现[J].科协论坛(下半月),2008(03).

[3]郭承湘,彭如宽.ASP.NET中Session对象的机制及存储方式探析[J].电脑知识与技术,2008(S1).

作者简介

周广深(1979-),男,黑龙江鹤岗人,本科,学士学位,中级讲师,从事计算机教学工作,主要研究方向为计算机网络技术、计算机应用技术。

作者单位

鹤岗师范高等专科学校计算机系 黑龙江省鹤岗市 154107

推荐访问:浅谈 用户登录 对象 页面 Session