使用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和图2所示。

1  Session示例

          2  Session示例

程序实现的主要步骤:

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

1                              Default.aspx页面中控件属性设置及其用途

控件类型

控件名称

主要属性设置

用途

标准/TextBox控件

txtUserName

 

输入用户名

txtPwd

TextMode属性设置为“Password

输入密码

标准/Button控件

btnLogin

Text属性设置为“登录”

登录按钮

btnCancel

Text属性设置为“取消”

取消按钮

用户单击【登录】按钮,将触发按钮的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 ());

}