如何强制状态服务器丢弃所有会话?

2024-01-31

我有一个 asp.net Web 应用程序,它使用状态服务器来存储其会话。当我们更改存储在会话中的某些内容的类型时,所有具有活动会话的用户都会出错,因为“旧会话”包含“旧类型”的实例。

我认为解决这个问题的最简单方法是重新启动状态服务器,从而摆脱所有会话。然而,这被证明是一种幼稚的做法。会话似乎仍然处于活动状态(具有会话旧 cookie 的用户仍然能够工作)。是否有其他方法可以强制会话状态服务器丢弃所有会话,以便为旧用户分配新会话?如果他们被迫再次进行身份验证也没关系。

或者是否有其他(更好)的方法来放弃所有会话?理想情况下不是以编程方式,但我们的管理员可以做什么?

编程方法可能会调用Session.RemoveAll in Application_End可以解决问题,但是这是标准方法吗?

如果会话不在内存中(在重新启动时应该不再存在),那么会话存储在状态服务器中的哪里?

我发现了两个相关的问题:

在应用程序启动时清除所有会话 https://stackoverflow.com/questions/11417587/clear-all-sessions-on-application-start- 这是相当不完整的编程解决方案

如何清除 ASP.NET 中所有用户的 SQL 会话状态 https://stackoverflow.com/questions/1321435/how-to-clear-sql-session-state-for-all-users-in-asp-net- 如果我有一个 sql server 方法来存储会话数据,这正是我所需要的


好吧,看起来是这样的(经过一些实验),会话状态服务器的重新启动会丢弃会话中的所有数据。

不过,重新启动后用户的会话 ID 仍然有效,这让我最初认为会话没有被丢弃。

我猜想,如果用户发送的会话 id 没有分配给某个现有会话,那么它会被新会话重用,因此用户仍然使用相同的 id 进行操作。尽管如此,会话中的数据还是被清除了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制状态服务器丢弃所有会话? 的相关文章

随机推荐

  • 如何在 CodeIgniter 3 中使用 PHPSpreadsheet 从 Excel(.xlsx 和 .xls)文件读取数据?

    最近 在我的一个基于 CodeIgniter 的项目中 我需要从 Excel 文件 xlsx 和 xls 读取数据并将这些数据插入 MySQL 不幸的是 我没有使用PHP电子表格之前 因为我不需要使用 Excel 到目前为止我所做的是下载P
  • 如何向 JTextArea 添加文本? (控制台模拟)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何将文本 命令 如在控制台中 添加到 JTextArea 中 或者 更具体地说 如何在 FTP 程序中添加 JTextArea 作为控制台
  • 从 Native 指针中获取数据

    将数据放入 Perl 6 Native 指针中没什么大不了的 sub memcpy Pointer void source Pointer void destination int32 size is native my Blob blob
  • XCode 7.3.1 更新未安装

    看起来 XCode 发布了新的更新 此问题似乎持续存在 即使 iTunes Store 将更新发布在 过去 30 天内安装的更新 部分 也不会呈现该更新 重新启动后 系统会提示我再次更新 即使我已经完成了两次 最终 当我打开 XCode 时
  • 如何使 Istanbul 生成我所有源代码的覆盖范围?

    目前 伊斯坦布尔仅为我的测试中使用的文件生成覆盖范围 这没关系 但似乎在某种程度上违背了覆盖范围的目的 我没有伊斯坦布尔配置 并且通过调用它npm test使用以下脚本字符串 istanbul cover mocha R dot check
  • DS.FixtureAdapter 丢失带有 hasMany 异步属性的夹具数据

    背景 我已经提交了github问题 https github com emberjs data issues 2136与 Ember Data 团队合作 但我很想了解如何解决这个问题 或者如果我一直都错了 如果出现此错误 您可以看到一个工作
  • 如何在 JavaScript 警报框中打印 Struts2 ActionMessage

    我有一个Action使用发送操作消息的类addActionMessage 我想使用 JavaScript 警报框在 JSP 中显示该消息 我尝试过 alert
  • 全新 MYSQL 安装,用户“root”访问被拒绝

    我有一台旧的 lamp 服务器 我想将其移动到新机器上 所以我做了一个 mysqldump 在新机器上安装了 Ubuntu Server 13 10 在安装过程中安装了 lamp 然后从旧的 lamp 服务器导入了我的旧 mysql 数据库
  • 编译 bevy_dylib v0.5.0 错误:与 `cc` 链接失败:退出状态:1

    在刚刚升级到 Monterey 的 Mac 上 我在尝试执行以下操作时收到以下信息cargo run一个简单的 Bevy 程序 我已经按照推荐重新安装了 XCode CLThere https stackoverflow com quest
  • R.java消失了

    我最近下载了 Android 支持包 并一直在使用它尝试让我的应用程序 在 SDK 10 上运行 使用 GridLayout 不管怎样 我清理了我的项目几次 以解决 XML 文件中的这个错误 然后当我回到 src 中的类时 对 R 的每个引
  • 使用“单一职责原则”强制我的容器拥有公共设置器

    我正在努力遵循 SOLID 原则进行设计 我发现 当您使用 单一职责原则 SOLID 的 S 时 您通常必须在数据容器和数据处理器之间划分类 例如 如果我有一个具有 5 个属性的类 person 它是从数据库读取的 而不是将所有内容都放在一
  • 如何开始使用 svn:externals?

    我正在寻找有关使用 svn externals 的简洁且写得好的教程 我自己已经知道如何以基本方式使用它们 但我想要一篇好文章 在回答最近出现的此类问题时可以链接到 如何处理依赖于同一来源的多个项目 https stackoverflow
  • ORA-12899: 值对于列来说太大

    我以 feed 的形式从 erp 系统获取数据 特别是 feed 中的一列长度仅为 15 在目标表中也对应的列长度也是varchar2 15 但是当我尝试将相同内容加载到数据库中时 它显示错误 例如 ORA 12899 列 emp name
  • 仅当按下特定命令按钮时才根据需要验证输入

    我有 JSF 验证的具体用例 例如我有一个inputText field
  • 选择范围并复制/粘贴到记事本 - 即将完成

    经过大量的工作和测试 确实非常可悲 我终于成功地选择了一个范围工作表 然后将其复制 粘贴到记事本中 此后该文件将由另一个应用程序读取 不幸的是 该应用程序拒绝该文件 我无法调试原因 我收到的唯一消息是发生错误最后一行 令人惊讶的是 当我手动
  • 使用 matplotlib.pcolormesh() 将颜色设置为透明的正确方法?

    我想要低于一定水平的值 在这种情况下0 绘制为透明matplotlib pcolormesh 而且我似乎无法使用我找到的选项进行任何操作 我尝试过设置kwarg vmin 1 我尝试设置限制plt cm cmap set under alp
  • 数据重塑的 R 性能

    我正在尝试在 R 中重塑数据框 但使用推荐的方法似乎有问题 数据帧具有以下结构 ID DATE1 DATE2 VALTYPE VALUE abcd1233 2009 11 12 2009 12 23 TYPE1 123 45 VALTYPE
  • 将 int 60 转换为 60 分钟的时间值

    这看起来应该很简单 但我找不到我需要的时间格式 数据库中的值为 240 这意味着 240 分钟 我如何将其存储在 php 变量中 以便 php 知道这是分钟 这样我就可以在脚本中将其添加到HH MM value 我编辑了下面的代码以反映答案
  • 如何在 nw.js 中开始使用 angular2

    如何在 nw js 下获得 Angular 2 的工作 hello world 我使用本指南成功获得了一个可用的 Angular 2 应用程序 https angular io docs js latest quickstart html
  • 如何强制状态服务器丢弃所有会话?

    我有一个 asp net Web 应用程序 它使用状态服务器来存储其会话 当我们更改存储在会话中的某些内容的类型时 所有具有活动会话的用户都会出错 因为 旧会话 包含 旧类型 的实例 我认为解决这个问题的最简单方法是重新启动状态服务器 从而