ASP.NET Session类

Session对象:

该类为当前用户会话提供信息,还提供对于可用于可用于储存信息的会话范围的缓存访问,以及控制如何管理会话的方法。

可以储存用户会话所需的信息,当用户在web页之间进行跳转,储存在session的信息不会丢失,而是一直储存在,知道过期或被放弃。

Session数据(除了SessionId)储存在服务器中,对用户来说是透明的。

每个session都一个唯一的sessionid,所以可以用sessionid来索引。

获得sessionid有两个方法:

a.使用cookie来保存sessionid,但是有些用户禁用cookie;

b.使用改装的url。

使用session并不免费,虽然可以解决很多问题但是服务器迫使储存额外的信息,导致服务器负担增大。

使用改装url来保存sessionid

Session的常用的属性和方法

属性 说明

count 获取会话状态下的 Session对象的个数

TimeOut Serssion的生存期

SessionId 用于标识会话的唯一编号

方法 说明

Abandon 取消当前的会话

Add 向当前会话状态集合添加一个新项

Clear 清除前挡会话的所有键和值

Remove 删除会话状态集合的项

RemoveAll 删除所有会话的状态值

RemoveAt 删除指定索引处的项

Session对象具有两个事件:Session_OnStart事件(创建一个Session对象触发) 与 Session_OnEnd事件(任何结束Session时触发)

Session对象的储存:

1.客户端储存(SessionId)

a.cookie来储存

b.用改装的url来储存

       <sessionState
        mode="InProc"
        cookieless="true"
        timeout="50"
        ></sessionState>

2.服务器储存

a.储存到进程中 mode="InProc"

b.储存到进程外 mode="StateServer"

c.储存到SQL Server中 mode="SQLServer"

Session对象应用

直接赋值:

Session["session"]="session";//赋值后会自动生成一个SessionId

Session对用户来说就是一个全局变量,在子页面中可以访问到Session

Session的丢失:

a.用户关闭浏览器或重启浏览器

b.用户通过另外一个浏览器窗口进入相同的页面,尽管当前的Session继续存在,在新开的浏览器窗口也找不到原来的Session

c.Session过期

d.被注销了

前两种情况,Session还继续存在内存之中,直到Session过期死掉。在没有过期之前程序员是找不到那个Session,因为SessionId已经丢失了,也就无法从Session集合中索引到该Session了

应用:

Session练习.aspx

protected void Page_Load(object sender, EventArgs e)
        {
           Session["a"] = "dddd";
           Response.Redirect("web1.aspx");
            
        }

web1.aspx

protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = Session["a"].ToString();
            Session["a"] = "aaaaaa";
        }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值