session对象

一。定义

   session 对象用于存储用户的信息。对于一个应用程序中的所有页面都可以共用。(客户端禁用COOKIE,session也不能使用!)

 

二。session的属性和方法

属性功能说明
SessionID 返回用户的会话标识。
在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。
TimeOut以分钟为单位为该应用程序的Session对象指定超时时限。
如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。
方法功能说明
Abandon删除所有存储在 Session 对象中的对象并释放这些对象的源。
事件功能说明
Session_OnStart该事件在服务器创建新会话时发生。
Session_OnEnd 该事件在会话被放弃或超时发生。

 

三。session 与 cookies的比较

  SessionCookies
相似点功能存储或跟踪用户数据
不同点存储位置服务端客户端
建立方式默认为每次访问网页就自动建立通过代码建立
安全性

 

 

四。创建一个session对象

 Session["UserName"]="admin";

 

五。获取一个session对象的值

  string UserName=Session["UserName"].ToString();

 

六 session 过期时间的四种设置方法

     1、操作系统:Widnows Server 2003

  步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。

  2、ASP.NET应用程序中Session过期时间的设置

  在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。

  具体修改方法如下,在web.config中进行如下配置

  <system.web>

  <sessionState mode="InProc" timeout="30"/>

  </system.web>

  在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。

  3、在调用Session的cs页中,Load事件里面写以下

  Session.Timeout = 30;

  4、Store session in asp.net state service

  <sessionState cookieless="false" timeout="480" mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" />

 

七。 HttpContext.Current.session 与 page.session的区别

       HttpContext.Current.Session 通常用在单独的类里 ;Page.Session一般是页面的后置类里用.

       使用 System.Web.HttpContext.Current.Session 访问当前Web 应用程序的Session。通常我们是使用 Page.Session(在网页的后台代码中)或 context.Session(来访问当前Web应用程序的 Session。但是在类库中,我们无法获取 Page 变量或 context 变量,这时我们就可以使用System.Web.HttpContext.Current.Session 访问当前Web 应用程序的Session .

    两者是相等的,只是访问形式不一样。

 

八。如果写在类库里,需要这样写,(写在构造方法里,需要重写方法。因为构造函数执行在asp.net页面所有的生命周期之前)

protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (System.Web.HttpContext.Current.Session["Islogin"] == null)
            {
                HttpContext.Current.Response.Write("session Is Null");
            }
            else
            {
                HttpContext.Current.Response.Write("session Is NotNull");
            }
        }

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xianghua

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值