首页 > 编程语言 >ASP.NET第五章 Application、Session和Cookie对象

ASP.NET第五章 Application、Session和Cookie对象

时间:2024-06-08 20:00:30浏览次数:21  
标签:ASP End 会话 用户 应用程序 Application Session

第五章

Global 全局的
1.包含所有应用程序的配置设置
2.存储所有事件的事件处理程序
3.存储在应用程序的根目录下
4.它的位置定义应用程序的限界


Global.asax六大事件:
1.Application_Start
调用当前应用程序目录(或其子目录)下的第一个 ASP.NET 页面时触发
2.Application End
应用程序的最后一个会话结束时触发用 Internet 服务管理器管理单元停止Web 应用程序时也会触发
3.Application BeginRequest
每次页面请求开始时触发(理想情况下是在页面加载或刷新时)
4.Application EndRequest
每次页面请求结束时(即每次在浏览器上执行页面时)触发
5.Session Start
每次新的会话开始时触发
6.Session End
会话结束时触发。(关于会话可以采用何种方式结束,请参见会话对象)


Application 对象
变量用于在应用程序执行时存储数据
页面级
string myname = “Graham ";
Response.Write (“欢迎 " + myname);

对象级
应用程序级
会话级

Lock 和 Unlock 方法 
上锁:
Lock() 用于防止用户更改 Application 对象的属性 
Lock() 可用作 Application.Lock() 

解锁:
Unlock() 方法用于释放对应用程序变量的锁定
UnLock() 可用作
Application.UnLock()


Application保存在服务端
Session存储于服务端
Cookie保存在客户端
Cookie:会话Cookie、持久性Cookie


Session 对象
1.Session 对象用于存储用户的信息 
2.当新用户请求应用程序的网页时,Server 对象会检查用户是否有 SessionID
3.优点
Session 对象包含特定于某个用户的信息
在用户会话期间可以记录和监视特定于用户的信息
当会话过期或终止时,服务器就会清除 Session 对象

Session 变量
Session 变量与 application 变量不同,Session 变量作用于局部,application 变量作用于全局
Session 变量仅提供给会话中的特定用户
Session 变量可用于存储在整个用户会话过程中都可以访问的值

Session事件
1.Session_Start
当新用户访问一个应用程序时会激活该事件
2.Session_End
用户退出应用程序时,就会触发 Session_End 事件

Session属性
1.SessionID
包含一个唯一的用户会话标识符。它用于在会话过程中跟踪用户的信息。要检索 SessionID,使用 Session.SessionID
2.TimeOut
设置用户超时,即它以分钟为单位指定 Session 对象在释放资源之前能够保持闲置的时间。用户可导航至另一个站点而不用关闭该应用程序。如果设定了超时属性,则无人操作的用户会话可被清除,由此释放服务器的资源。 默认值为 20 分钟。可通过在 ASPX 文件中赋值来更改此设置。例如,<% Session.Timeout = 10 %>
3.LCID
用于设定本地标志符. 它可存储本地信息,如日期、货币和时间格式。例如 Session.LCID = 0x040C 将本地标识符设定为法国本地标识符
4.IsNewSession
若该会话是由当前请求创建的,该属性将返回值 true
5.Item
获取或设置会话值的名称
6.Count
获得会话状态集合中的项数


总结:
1.Global.asax 文件包含常用的2.Application_Start、Application_End、Session_Start、Session_End等事件
3.Application 对象是存储于服务器的全局变量
4.Cookie 存储信息于客户端
5.Session 对象用于在服务器端存储用户的信息,在用户结束会话时被清除
6.新用户访问应用程序时会激活 Session_Start 事件,而用户退出应用程序时会7.触发 Session_End 事件

标签:ASP,End,会话,用户,应用程序,Application,Session
From: https://blog.csdn.net/m0_66701589/article/details/139549702

相关文章

  • Springboot 开发 -- Redis实现分布式Session
    一、引言在微服务架构和分布式系统中,会话管理(SessionManagement)成为了一个挑战。传统的基于Servlet容器的会话管理方式在分布式环境下无法有效工作,因为用户请求可能会被分发到不同的服务器上,导致会话数据无法共享。为了解决这个问题,SpringSession提供了一种基于外部存储(......
  • [ROS自定义消息问题]ImportError: cannot import name ‘GQCNNGrasp‘ from ‘gqcnn_r
         在使用ROS运行Python代码时,经常会遇到无法引用自定义消息文件的情况。这其实是一个比较常见的问题,通常是由于ROS找不到消息文件所在的路径导致的。问题描述:在ROS中运行Python代码时,如果尝试导入自定义消息文件,可能会遇到类似如下的错误:ImportError:Nomodule......
  • 1_关于BeanFactory与ApplicationContext的联系和区别
    BeanFactory与ApplicationContext1.容器和接口1.1BeanFactory与ApplicationContext的联系与区别:ConfigurableApplicationContext是ApplicationContext的子接口,而ApplicationContext接口又是BeanFactory的子接口。因此ConfigurableApplicationContext接口简介继承了Bean......
  • ASP.NET Core 中使用基本消息的 RabbitMQ 消费者
    介绍RabbitMQ是一种流行的消息代理,它使应用程序能够通过交换消息进行异步通信。本文中,我们将探讨如何使用基本消息处理程序在ASP.NETCore应用程序中实现RabbitMQ消费者。我们将利用ASP.NETCore中间件的灵活性来创建一个可重复使用的消息处理管道,该管道可以高效地......
  • Bug记录:Content-Type 'application/json;charset=UTF-8' is not supported异常解决
    Content-Type'application/json;charset=UTF-8'isnotsupported异常解决前提:确定不是因为Content-Type导致的异常,controller层有注解@RequestBody。报错详情:确定不是因为缺少Jackson依赖或者版本过低:注意到报错信息上边有一条警告日志:.c.j.MappingJackson2HttpMessageCo......
  • Asp .Net Core 系列:详解鉴权(身份验证)以及实现 Cookie、JWT、自定义三种鉴权 (含源码解
    什么是鉴权(身份验证)?https://learn.microsoft.com/zh-cn/aspnet/core/security/authentication/?view=aspnetcore-8.0定义鉴权,又称身份验证,是确定用户身份的过程。它验证用户提供的凭据(如用户名和密码)是否有效,并据此确认用户是否具备访问系统的权利。过程用户向系统提供......
  • [GHCTF 2024 新生赛]理想国 flask session伪造
    忙着毕业论文几天没做题了。进入页面发现几个api接口,注册登录搜索登出4个。利用postman访问注册接口注册。可以看到返回了token,利用token访问login。尝试search页面传入file参数试试能不能目录穿越。得到secret-key,这里有个非预期解,访问/proc/1/environ直接得到flag。......
  • ASP.NET Core MVC 练习项目
    目录一、开发环境二、项目搭建2.1创建ASP.NETMVC项目2.2导入相关程序包2.3创建模型类、数据库上下文2.4配置连接数据库、配置数据库上下文、注册数据库上下文2.5数据迁移、添加初始数据三、业务实现3.1新建接口类文件夹IService,并在文件夹中创建IGetService接......
  • ASP.NET Core MVC 接上篇新增加“增删改查”操作
    前言由于上一篇文章只写了怎么创建项目以及一个查询操作,这篇文章将把增删改查的操作补齐,希望能帮助到一同学习的小伙伴,内容中如有不懂的点,可参考ASP.NETCore官方文档,如有写的不对的,请在评论区补充,主打听劝;增删改查接口类publicinterfaceIGetService<T>whereT:cl......
  • Java动态获取实现类 Class.forName(clazz).newInstance()和applicationContext.getBea
    Java动态获取实现类Class.forName(clazz).newInstance()和applicationContext.getBean,beanMap寻找方式,JavaMap定义和初始化方法1.定义枚举类MyServiceTypeEnum.javapackagecom.example.core.mydemo.bean;publicenumMyServiceTypeEnum{SUBMIT_ORDER_SUCCESS("s......