详解ASP.NET中Session的用法_

上传人:ni****g 文档编号:476467337 上传时间:2022-09-06 格式:DOCX 页数:11 大小:15.83KB
返回 下载 相关 举报
详解ASP.NET中Session的用法__第1页
第1页 / 共11页
详解ASP.NET中Session的用法__第2页
第2页 / 共11页
详解ASP.NET中Session的用法__第3页
第3页 / 共11页
详解ASP.NET中Session的用法__第4页
第4页 / 共11页
详解ASP.NET中Session的用法__第5页
第5页 / 共11页
点击查看更多>>
资源描述

《详解ASP.NET中Session的用法_》由会员分享,可在线阅读,更多相关《详解ASP.NET中Session的用法_(11页珍藏版)》请在金锄头文库上搜索。

1、详解ASP.NET中Session的用法_ 当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户恳求来自应用程序的 Web 页时,假如该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。 通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次恳求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中著名为 ASPSESSIONID 的 Cookie 发送过来,假如有,则服务器会启动

2、新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是用法这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,假如用户指明不喜爱查看图形,就可以将该信息存储在 Session 对象中。另外其还常常被用在鉴别客户身份的程序中。要留意的是,会话状态仅在支持 cookie 的扫瞄器中保留,假如客户关闭了 Cookie 选项,Session 也就不能发挥作用了。 (一)Session的基本属性: 一、属性 1、SessionID SessionID 属性返回用户的

3、会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在许多状况下 SessionID 可以用于 WEB 页面注册统计。 2、TimeOut Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。假如用户在该超时时限之内不刷新或恳求网页,则该会话将终止。 二、方法 Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除全部存储在 Session 对象中的对象并释放这些对象的源。假如您未明确地调用 Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。

4、 % Session.Abandon % 三、大事 Session 对象有两个大事可用于在 Session 对象启动和释放是运行过程。 1、Session_OnStart 大事在服务器创建新会话时发生。服务器在执行恳求的页之前先处理该脚本。Session_OnStart 大事是设置会话期变量的最佳时机,由于在访问任何页之前都会先设置它们。 尽管在 Session_OnStart 大事包含 Redirect 或 End 方法调用的状况下 Session 对象仍会保持,然而服务器将停止处理 Global.asa 文件并触发 Session_OnStart 大事的文件中的脚本。 为了确保用户在打开某

5、个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 大事中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 大事脚本。您可以将脚本包含在该大事中以便检查用户打开的页是不是启动页,假如不是,就指示用户调用 Response.Redirect 方法启动网页。程序如下 : SCRIPT RUNAT=Server Language=VBScript Sub Session_OnStart startPage = /MyApp/StartHere.asp currentPage = Request.Serv

6、erVariables(SCRIPT_NAME) if strcomp(currentPage,startPage,1) then Response.Redirect(startPage) end if End Sub /SCRIPT 上述程序只能在支持 cookie 的扫瞄器中运行。由于不支持 cookie 的扫瞄器不能返回 SessionID cookie,所以,每当用户恳求 Web 页时,服务器都会创建一个新会话。这样,对于每个恳求服务器都将处理 Session_OnStart 脚本并将用户重定向到启动页中。 2、Session_OnEnd 大事在会话被放弃或超时发生。 关于用法 Ses

7、sion 对象需要留意的事项 Application 对象相近,请参照前文。 会话可以通过以下三种方式启动 : 1)、一个新用户恳求访问一个 URL,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。 2)、用户在 Session 对象中存储了一个值。 3)、用户恳求了一个应用程序的 .asp 文件,并且该应用程序的Global.asa 文件用法 OBJECT 标签创建带有会话作用域的对象的实例。 假如用户在指定时间内没有恳求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通

8、过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性转变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,假如您盼望扫瞄您的 Web 应用程序的用户在每一页仅停留几分钟,就应当缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,假如您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。 % Session.Timeout = 5 % 当然你也可以设置一个大于默认设置的超时值,Sess

9、ion.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中供应一个“退出”按钮,将按钮的 ACTION 参数设置为包含下列指令的 .asp 文件的 URL。 % Session.Abandon % (二)Session的用法: 一、用法Session设定权限 Session简介: 简洁来说就是服务器给客户端的一个编号。当一台服务器运行时,可能有若干个用户扫瞄正在运正在这台服务器上的网站。当每个用户首次与这台服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其安排一个SessionID,用以标识这

10、个用户的唯一身份。这个SessionID是由服务器随机产生的一个由24个字符组成的字符串。 -Session的初次用法: protected void Page_Load(object sender, EventArgs e) /这是页面的初始化 if (!Page.IsPostBack) /推断是否为初次执行 if (Object.Equals(SessionAdminName, null) /推断在SessionAdminName是否存在值 Response.Redirect(ErrorPage.aspx, true); else /要是存在则记录下这个人的用户名 Name.Text =

11、SessionAdminName.ToString(); 二、进行页面传值 在页面之间传递信息有很多方式: 第一:可以用法QueryString 其次:可以用法Session 第三:Server.Transfer 这三种传值方式都有利有弊,下面我以我的阅历给大家讲解一下 首先:QueryString QueryString是一种特别简洁的传值方式,其缺点就是会把要传递的值显示在扫瞄器的地址栏中,并且此方法不能够传递对象。假如你想传递一个平安性不是那么重要或者是一个简洁的数值时。用法此方式最好不过。 下面通过一个小例子来说明一下 1.创建一个Web页面,叫SendMessage.aspx 2.在

12、页面内添加两个TextBox,叫TxtName,TxtEmail,与一个Button,叫Submit protected void Submit_Click(object sender, EventArgs e) String Url = ReceiveMessage.aspx?Name= + TxtName.Text + Email= + TxtEmail.Text; Response.Redirect(Url); 3.再创建一个接收信息页面,叫ReceiveMessage.aspx 4.在页面内添加两个Label,叫LbName,LbEmail protected void Page_Lo

13、ad(object sender, EventArgs e) /用法Request来接收由上个页面传递过来的值,分别显示在页面上 LbName.Text = Request.QueryStringName; LbEmail.Text = Request.QueryStringEmail; -再次:用法Session变量 用法Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消逝 下面举例说明 1.创建一个页面,叫SendSession 2.在页面内添加两个TextBox,叫TxtName,T

14、xtEmail,添加一个Button,叫Submit protected void Submit_Click(object sender, EventArgs e) /可以用法Session的Add方法 SessionName = TxtName.Text; /可以用法Session.Add(Name,TxtName.Text); SessionEmail = TxtEmail.Text; /可以用法Session.Add(Email,TxtEmail.Text); Response.Redirect(ReceiveMessage.aspx); 3.再创建一个页面,叫ReceiveMessage.aspx 4.在页面内添加两个Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) LbName.Text = SessionName.ToString(); LbEmail.Text = SessionEmail.ToString(); SessionName.Remove(); SessionEmail.Remove(); /用法结束要清除Session中的值 这是用法Session传递数值,此方式耗费服务器的资源,尽量少用法 -再次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号