• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 详解ASP.NET中Session的用法

详解ASP.NET中Session的用法

作者:wangjingjing1014 字体:[增加 减小] 来源:互联网 时间:2017-05-11

wangjingjing1014通过本文主要向大家介绍了session asp.net,asp session,asp中session的用法,asp session用法,asp session传值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

      当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

       通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有名为 ASPSESSIONID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是使用这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie 的浏览器中保留,如果客户关闭了 Cookie 选项,Session 也就不能发挥作用了。 

(一)Session的基本属性:

一、属性

1、SessionID

       SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。

2、TimeOut

       Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。

二、方法

       Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除所有存储在 Session 对象中的对象并释放这些对象的源。如果您未明确地调用 Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。 

< % Session.Abandon %>

三、事件

Session 对象有两个事件可用于在 Session 对象启动和释放是运行过程。

1、Session_OnStart 事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。

       尽管在 Session_OnStart 事件包含 Redirect 或 End 方法调用的情况下 Session 对象仍会保持,然而服务器将停止处理 Global.asa 文件并触发 Session_OnStart 事件的文件中的脚本。

       为了确保用户在打开某个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 事件中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 事件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用 Response.Redirect 方法启动网页。程序如下 :

< SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
< /SCRIPT>

</div>

       上述程序只能在支持 cookie 的浏览器中运行。因为不支持 cookie 的浏览器不能返回 SessionID cookie,所以,每当用户请求 Web 页时,服务器都会创建一个新会话。这样,对于每个请求服务器都将处理 Session_OnStart 脚本并将用户重定向到启动页中。 

2、Session_OnEnd 事件在会话被放弃或超时发生。

       关于使用 Session 对象需要注意的事项 Application 对象相近,请参照前文。

       会话可以通过以下三种方式启动 :

1)、一个新用户请求访问一个 URL,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。

2)、用户在 Session 对象中存储了一个值。

3)、用户请求了一个应用程序的 .asp 文件,并且该应用程序的Global.asa 文件使用 < OBJECT> 标签创建带有会话作用域的对象的实例。

       如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。

< % Session.Timeout = 5 %>

       当然你也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个“退出”按钮,将按钮的 ACTION 参数设置为包含下列命令的 .asp 文件的 URL。 

< % Session.Abandon %>

(二)Session的用法:

一、使用Session设定权限
Session简介:
简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。
-Session的初次使用:

protected void Page_Load(object sender, EventArgs e)
{//这是页面的初始化
  if (!Page.IsPostBack)
  {//判断是否为初次执行
   if (Object.Equals(Session["AdminName"], null))
   {//判断在Session["AdminName"]是否存在值
    Response.Redirect("ErrorPage.aspx", true);
   }
   else
   {//要是存在则记录下这个人的用户名
   Name.Text = Session["AdminName"].ToString();
   }
  }
}
</div>

二、进行页面传值

在页面之间传递信息有许多方式:
第一:可以使用QueryString
第二:可以使用Session
第三:Server.Transfer
这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下
首先:QueryString
QueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。
下面通过一个小例子来说明一下
1.创建一个Web页面,叫SendMessage.aspx
2.在页面内添加两个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);
 }
</div>

3.再创建一个接收信息页面,叫ReceiveMessage.aspx
4.在页面内添加两个Label,叫LbName,LbEmail

 protected void Page_Load(object sender, EventArgs e)
 {//使用Request来接收由上个页面传递过来的值,分别显示在页面上
  LbName.Text = Request.QueryString["Name"];
  LbEmail.Text = Request.QueryString["Email"];
 }
</div>

-再次:使用Session变量
使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失
下面举例说明
1.创建一个页面,叫SendSession
2.在页面内添加两个TextBox,叫TxtName,TxtEmail,

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net中安全退出时清空Session或Cookie的实例代码
  • 详解ASP.NET中Session的用法
  • ASP.NET在底层类库中获取Session C#类中获取Session 原创
  • asp.net基于session实现购物车的方法
  • ASP.NET中Session和Cache的区别总结
  • asp.net网站防恶意刷新的Cookies与Session解决方法
  • 实现Asp与Asp.Net共享Session的方法
  • ASP.NET 使用application与session对象写的简单聊天室程序
  • ASP.NET ASHX中获得Session的方法
  • ASP.NET中在一般处理程序中使用session的简单介绍

相关文章

  • 2017-05-11ASP.NET中 TextBox 文本输入框控件的使用方法
  • 2017-05-11JAVA正则表达式 Pattern和Matcher
  • 2017-05-11Visual Studio 2017正式版离线安装教程
  • 2017-05-11asp.net web大文件上传带进度条实例代码
  • 2017-05-11ASP.NET WebAPi(selfhost)实现文件同步或异步上传
  • 2017-05-11使用母版页时内容页如何使用css和javascript
  • 2017-05-11Asp.net_Table控件の单元格纵向合并示例
  • 2017-05-11C#中string与byte[]的转换帮助类-.NET教程,C#语言
  • 2017-05-11asp.net下PageMethods使用技巧
  • 2017-05-11asp.net 无刷新附件上传实现方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net结合Ajax验证用户名是否存在的代码
    • .net微信开发 如何获取AccessToken
    • ajax.net对数据库的插入实例
    • asp.net 该行已经属于另一个表错误的解决方法
    • 判断WebBrowser浏览器网页加载完成的处理方法
    • 使用DataTable.Select 方法时,特殊字符的转义方法分享
    • .net邮箱发布邮箱信息的实例
    • AutoCAD .Net禁止图元被删除的方法
    • ASP.NET WebForm中<%=%>与<%#%>的区别
    • 用javascript打造搜索工具栏

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有