自强不息,厚德载物!身心自在,道法自然!


初识 Asp.Net内置对象之Session对象

Session对象

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

Session对象常用集合

集合名  
Contents 用于确定指定会话项的值或者遍历Session对象的集合
StaticObjuects 确定某对象指定属性的值或遍历集合,并检索所有静态对象的所有属性

 

 

 

Session对象常用属性

属性  
TimeOut 传回或者设定Session对象变量的有效时间,如果使用者超过有效时间没有动作,Session对象就会失效。默认值是20分钟

 

 

 

Session对象常用方法

方法  
Abandon 该方法结束当前会话,并且清楚会话中的所有信息。如果用户随后访问页面,可以为它创建新会话(“重新建立”非常有用,这样用户就可以得到新的会话)
Clear 该方法清楚全部的Session对象变量,但不结束会话

 

 

 

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

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

Session[varName]=值;      //varName为变量名称

 实验一个例子,我们最常用的实例,就登录吧!

我们随便添加2个页面进来,Default.aspx默认页面,该页面让用户填写信息登录,Welcome.aspx该页面在初始时候展示用户信息。项目具体如下:

我们的Default.aspx页面大体如下:

再来用Session对象来实现登录,这里只简单的实验一下Session怎么来存储信息。Default.aspx.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebSessionDemo
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            if (this.txtUserName.Text == "admin" && this.txtPwd.Text == "www.admin.com")
            {
                //用Session变量记录用户名
                this.Session["UserName"] = this.txtUserName.Text;
                //用Session变量记录用户系统的时间
                this.Session["LoginTime"] = DateTime.Now;

                this.Response.Redirect("~/Welcome.aspx");
            }
            else
            {
                this.Response.Write("<script>alert(‘登录失败!请查找原因’)</script>");
            }
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            //清空
            this.txtUserName.Text = "";
            this.txtPwd.Text = "";
        }
    }
}

Welcome.aspx页面是取出Session对象的值并且展示出来,具体代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebSessionDemo
{
    public partial class Welcome : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Response.Write("欢迎用户" + this.Session["UserName"].ToString() + "登录系统<br/>");
            this.Response.Write("你登录的时间为:" + this.Session["LoginTime"].ToString());
        }
    }
}

写好后运行,运行Default页面,不能直接运行Welcome页面(直接运行Welcome会有未将对象实例化的异常,因为没有做处理,这里只是为了演示Session存储数据和取数据),所以运行效果如下:

......

到此关于Session对象就简单的了解到这里!

posted @ 2014-04-12 09:35  辉太  阅读(908)  评论(0编辑  收藏  举报

路漫漫其修远兮,吾将上下而求索!