Session.Abandon() 和 Session.Clear() 有什么区别

2023-12-07

销毁会话和删除其值有什么区别?您能提供一个例子来证明这一点吗?

我搜索了这个问题,但没有掌握完整的答案。一些答案是:

  • Session.Abandon()破坏会话
  • Session.Clear()只是删除所有值

一位朋友告诉我这样的事:

清除会话不会重置 会话,它仍然存在 用户的 ID 相同,但带有 值被简单地清除。

放弃将破坏会话 完全,这意味着你需要 在此之前开始新的会话 在会话中存储更多值 对于该用户。

下面的代码可以工作并且不会抛出任何异常。

Session.Abandon();
Session["tempKey1"] = "tempValue1";

当您 Abandon() 会话时,您(或 相反,用户)将得到一个新的 会话ID

当我测试会话时,当我放弃会话时它不会做出任何更改。

我只发现一处不同:session.Abandon() raises Session_End event


Clear- 从会话状态集合中删除所有键和值。

Abandon- 删除会话中存储的所有对象。如果不显式调用 Abandon 方法,服务器会在会话超时时删除这些对象并销毁会话。
它还引发了类似的事件会话结束.

Session.Clear 可以与从书架上移走所有书籍,而 Session.Abandon 更像是扔掉整个架子.

You say:

当我测试会话时,当我放弃会话时它不会做出任何更改。

当你这样做时这是正确的仅在一次请求内.
在下一次请求时,会话将有所不同。但是会话ID可以重复使用这样 id 将保持不变。

如果您将使用 Session.Clear,您将在许多请求中拥有相同的会话。

一般来说,大多数情况下您需要使用Session.Clear。
如果您确定用户将离开您的站点,则可以使用 Session.Abandon。

回到差异:

  1. 放弃引发 Session_End 请求。
  2. 清除会立即删除项目,而放弃不会。
  3. 放弃会释放 SessionState 对象及其项目,以便它可以进行垃圾收集以释放资源。 Clear 保留 SessionState 和与其关联的资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Session.Abandon() 和 Session.Clear() 有什么区别 的相关文章

  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • Asp.net 动态验证器在 Chrome 或 Safari 中不起作用

    好的 我正在动态创建 Asp net 验证控件并将它们插入到更新面板中 验证在 IE 和 Firefox 中有效 但在 Chrome 或 Safari 中无效 这是 aspx 文件 不要问我为什么不使用按钮服务器控件
  • .tostring() 保留前导零[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 转换对象
  • 如何在日历中选择多个日期并将其显示在标签中

    假设我有日历 并且我想选择多个日期并在标签中显示 我使用了以下代码 但它无法正常工作 请更正 lblMultipleDate Text Calendar1 SelectedDates 0 ToShortDateString Label2 T
  • 通过 CultureInfo 格式化字符串

    我想显示英镑符号和格式 0 00 即 45 00 4 10 我正在使用以下语句 td style text align center td 但它不起作用 问题是什么 谁能帮我 Use the Currency http msdn micro
  • 回发 Asp.Net 上的动态用户控件

    我创建了一个项目 user control 它有一个文本框 按钮等 它将有意收集用户想要的项目总数 我在 page load 上动态创建了几个 user control 实例 如果您单击项目数量的添加按钮 它将添加到会话变量中 但是 当用户
  • ASP.NET 网站上的 XSS 攻击 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我遇到了很大的麻烦 请帮忙 我的网站
  • MVC4 - ContextDependentView - 是什么意思?

    我刚刚开始使用 MVC4 我看到的第一个操作方法有一些新内容 我查了一下互联网 找不到任何关于此的信息 public ActionResult LogOn return ContextDependentView 有谁知道 ContextDe
  • 如何强制控制器/操作使用 JsonValueProvider

    再会 我正在使用 ASP NET MVC 3 其中JsonValueProvider http haacked com archive 2010 04 15 sending json to an asp net mvc action met
  • 如何以编程方式设置单元格颜色 epplus?

    我想知道是否可以使用 epplus 以编程方式设置单元格颜色 我从 sql 存储过程加载数据并且运行良好 但我的用户想要 包含 年假 一词的单元格的背景颜色为浅黄色 而不是默认的白色 有没有办法做到这一点 也许通过迭代数据表 下面是哪里 p
  • EditorFor 的最小值和最大值

    我一直在尝试这段代码来设置我的最小值和最大值EditorFor
  • 为多语言 ASP.NET WebAPI 应用程序设置 CurrentCulture 的最佳位置

    基于这个问题 为多语言 ASP NET MVC Web 应用程序设置 CurrentCulture 的最佳位置 https stackoverflow com questions 8226514 best place to set curr
  • 没有适用于机器人的 Laravel 会话

    我在大型 Laravel 项目和 Redis 存储方面遇到问题 我们将会话存储在 Redis 中 我们已经有 28GB 的 RAM 然而 它的运行速度仍然相对较快 达到了极限 因为我们有来自搜索引擎机器人的大量点击 每天超过 250 000
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • PHP 自定义会话处理程序问题 (PHP 7.1)

    我刚刚在计算机上从 PHP 7 0 迁移到 PHP 7 1 当前版本的 WAMP 的全新 全新安装 它似乎破坏了自定义会话处理程序中的某些内容 该处理程序应该将会话保存到数据库而不是使用文件系统 自定义处理程序类是 class db ses
  • 删除具有多个主键的 Datalist 行

    我有一个带有 OnDeleteCommand Delete Command 的数据列表 我想要删除具有多个主键的记录 但我不知道如何从 Delete Command 事件访问它 如果我使用 DataKeyField 我只能使用一个键 有什么
  • 绑定 WebForms TextBox 上的千位分隔符的逗号

    我正在尝试如下格式化数据绑定值 但我不断得到一个空格作为千 位分隔符 即显示的文本始终是 12 340 00 而它应该是 12 340 00 我缺少什么
  • 使用 Javascript 删除 HTML 表格行

    我正在使用下面的代码使用 javascript 删除 HTML 表行 但它给了我错误 使用下面的代码 我在运行时使用 javascript 创建一个列 其中包含删除锚标记 var tbody document getElementById
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • 向客户报告模型状态和应用程序错误的推荐方法是什么?

    我想知道向浏览器报告将显示给用户的应用程序或模型状态错误的最佳实践是什么 你能抛出一个异常并在jquery post的错误处理程序中处理它吗 例如 考虑这个方法 HandlerErrorWithAjaxFilter HttpPost pub

随机推荐

  • 以管理员身份运行时 DriveInfo.GetDrives() 不返回映射驱动器

    我正在创建一个 WPF 应用程序 除其他外 它还应该检查多个映射驱动器是否存在 代码很简单 DriveInfo systemDrives DriveInfo GetDrives foreach DriveInfo i in systemDr
  • std::byte 可以替代 std::aligned_storage 吗?

    C 17引入了一种新类型 std byte 所以现在我们终于有了一个一等公民类型来表示内存中的字节 除了在标准中是一个新颖的东西之外 C 的对象创建 生命周期的开始和结束 别名等规则在大多数情况下都相当复杂且不直观 所以每当我觉得std b
  • PHP/curl:namelookup_time/dns 减慢请求

    编辑 找到部分原因 见底部 我正在从 php ini 进行标准的curl 调用 但是 名称解析期间似乎出现了挂断 在我的 OSX 机器上 对于同一子网的此查询和其他查询 namelookup time 始终超过 1 秒 我的子网上的一台 L
  • Jmeter 中合理同时运行的最大线程数是多少?

    我想使用尽可能多的线程 以使用更少的计算机 但又不让瓶颈出现在客户端 只要使用得当 JMeter 就可以模拟非常高的负载 别听都市传说这说明 JMeter 无法处理高负载 现在至于答案 取决于 你的机器功率 你的jvm是32位还是64位 你
  • 防止 python 关闭 Windows

    我想防止 Windows xp 和 7 关闭 为此 我似乎必须拦截 WM QUERYENDSESSION 消息并返回 False 好吧 我必须纠正我的说法 这个程序在 Windows 7 下工作正常 但在 Windows 7 嵌入式标准 S
  • 如何使用 R 将 Grib1 转换为 Netcdf?

    我刚刚下载了一些 Grib 格式的气候数据 我想使用 R 将其转换为 NetCDF 格式 此外 由于该文件由不同的变量组成 我想一次将一个变量提取到单独的文件中 如果没有您的特定文件 很难回答这个问题 你应该考虑生产可重复的examples
  • 如何替换两个符号之间所有出现的字符串?

    我正在 Javascript 上使用 RegEx 这就是我遇到的问题 我有一个简单的字符串 例如 span style font family Verdana size 3D quot 2 quot http 72 55 146 142 8
  • cmd ftp mput - jpeg 文件与原始文件不同

    目前我正在为 ftp s 执行此批处理 打开192 1 2 3 USER密码cd 文件夹 液晶屏 c 文件夹 promptmkdir 20140730光盘 20140730 输入 jpeg quit 在测试过程中 我尝试输入 10 个文件
  • 使用 Javascript 通过单击按钮来切换下拉列表的启用和禁用?

    我使用以下 JavaScript 来禁用 ASP NET 页面中的下拉列表 当我单击按钮时会调用该列表 function disableDropDown DropDownID document getElementById DropDown
  • 在 DBF 中搜索并更新记录

    Code usr bin python db dbf Dbf MEST2 DBF LINE TO UPDATE rec db 0 PROEST IS A field of my dbf I m assigning 1 to this fie
  • hapijs joi 验证,验证大于其他属性的总和

    我想验证一个字段 familymemberCount 它应该大于等于其他字段 我尝试了下面的代码 但这不允许将 运算符与 Ref 一起使用 我们如何用其他值的总和进行验证 export const familyMemberRulesSche
  • 使用 XCode 4 生成代码覆盖率数据需要什么

    我一直在尝试使用 XCode 4 2 1 构建 4D502 上概述的步骤为我的应用程序生成代码覆盖率数据http code google com p coverstory wiki UsingCoverstory 我显然错过了一些东西 因为
  • 为什么 OpenCL 工作组大小对 GPU 性能影响巨大?

    我正在 Qualcomm Adreno 630 GPU 上对一个简单的矩阵转置内核进行基准测试 我试图了解不同工作组大小的影响 但令人惊讶的是 我得到了一些我无法解释的有趣结果 这是我的内核代码 kernel void transpose
  • Xamarin:通过 GetManifestResourceStream 加载资源

    我正在开发一个使用 OpenGL OpenTK 的 Xamarin 表单项目 我正在尝试使用 GetManifestResourceStream 加载着色器 无论我做什么 我都会得到空值 代码正在从 Shared 项目运行 着色器位于 io
  • 从 NetCoreApp2.1 调用 OData 服务时出现 System.NotSupportedException

    我已经设置了一个多目标 net4 5 2 netstandard2 类库 允许使用我们的企业 OData 服务之一 为了访问此 OData 服务 我们使用使用以下命令生成的代理类OData v4 客户端代码生成器 v7 5 0 不幸的是 当
  • 从 C# 中的文本文件读取

    我有以下程序 它将发送 输出 信息到文本文件 但现在我想从文本文件中读取 输入 任何建议将不胜感激 我已经注释掉了一些 我认为 我需要做的事情 但我不太确定如何继续 using System Windows Forms using Syst
  • 尝试访问字符指针数组时出现分段错误

    所以我创建了一个处理 char 指针数组的函数 通过使用 运算符 功能 int fetchargs char argv argv 0 0 A 将导致分段错误 我传递了一个字符指针数组 其初始化如下 char argv ARG NUM MAX
  • Android、wifi主动扫描

    我需要在我的 Android 应用程序上进行频繁的 wifi 扫描 我正在尝试基于 wifi RSSI 值构建本地室内定位系统 如果我调用 wifi startScan 我有 onReceive 每 6 秒回调一次 我想默认情况下它是被动扫
  • Struts 2 是否可以作为 OSGi 捆绑包提供?

    我有一个服务器应用程序 由多个 OSGi 包组成 其中一些是我的 一些是第三方的 其中一个捆绑包提供了使用 Struts 的 Web 前端 必要的 Struts 库位于 Web 前端包内 现在我想添加第二个包 它提供另一个 Web 前端 具
  • Session.Abandon() 和 Session.Clear() 有什么区别

    销毁会话和删除其值有什么区别 您能提供一个例子来证明这一点吗 我搜索了这个问题 但没有掌握完整的答案 一些答案是 Session Abandon 破坏会话 Session Clear 只是删除所有值 一位朋友告诉我这样的事 清除会话不会重置