大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > 深入理解Session对象

深入理解Session对象

关键词:Session对象asp.net  阅读(659) 赞(35)

[摘要]Session对象用于存储在多个页面调用之间特定用户的信息。Session对象只针对单一网站使用者,不同的客户端无法互相访问。

Session对象用于存储在多个页面调用之间特定用户的信息。Session对象只针对单一网站使用者,不同的客户端无法互相访问。Session对象中止于联机机器离线时,也就是当网站使用者关掉浏览器或超过设定Session对象的有效时间时,Session对象变量就会关闭。

Session对象常用集合、属性和方法

Session对象的常用集合及说明如表1所示。


使用Session对象存储和读取数据

使用Session对象定义的变量为会话变量。会话变量只能用于会话中特定用户。应用程序的其他用户不能访问或修改这个变量。而应用程序变量则可由应用程序的其他用户访问或修改。Session对象定义变量的方法与Application对象相同,都是通过“键/值”对的方式来保存数据,语法:

Sessiont[varName ]=值;

其中, varName为变量名,例如:

//将TextBox控件的文本存储到Session["Name"]中
Session["Name"]=TextBox1.Text;
//将Session["Name"]的值读取到TextBox控件中
TextBox1.Text=Session["Name"].ToString();

用户登录后通常会记录该用户的相关信息,而该信息是其他用户不可见,并且不可访问的,这就需要使用Session对象进行存储。下面通过示例介绍如何使用Session对象保存当前登录用户的信息。执行程序,示例运行结果如图所示。

程序实现的主要步骤:

(1)新建一个网站,默认主页Default.aspx,将其命名为Login.aspx。在Login.aspx页面上添加两个TextBox控件和两个Button控件,它们的属性设置如表1所示。


用户单击【登录】按钮,将触发按钮的btnLogin _Click事件。在该事件中,使用Session对象记录用户名及用户登录的时间,并跳转到Welcome.aspx页面。代码如下:

protected void btnLogin_Click(object sender, EventArgs e)
{
if (txtUserName.Text=="mr" && txtPwd .Text =="mrsoft")
{
Session["UserName"] = txtUserName.Text;//使用Session变量记录用户名
Session["LoginTime"] = DateTime.Now;//使用Session变量记录用户登录系统的时间
Response.Redirect("~/Welcome.aspx");//跳转到主页
}
else
{
Response.Write("<script>alert('登录失败!请返回查找原因');location='Login.aspx'</script>");
	}
}

(2)在该网站中,添加一个新页,将其命名为Welcome.aspx。在页面Welcome.aspx的初始化事件中,将登录页中保存的用户登录信息显示在页面上。代码如下:

protected void Page_Load(object sender, EventArgs e)
{
Response.Write("欢迎用户"+Session["UserName"].ToString ()+"登录本系统!<br>");
Response.Write("您登录的时间为:"+Session["LoginTime"].ToString ());
}



相关评论