【发布时间】:2021-10-20 11:31:06
【问题描述】:
我正在将 tempdata 用于变量,并且当前已将其设置在家庭控制器中,并且在我的第一个最后一个控制器中,我通过执行 if(TempData.ContainsKey()) TempData.Remove() 删除了该键。我把它放在那里,假设用户将从 A 点到 D 点,其中 D 是最后一个控制器。但我注意到,如果我在应用程序的任何一点关闭应用程序,分配的临时数据即tempdata["username"] = username 将包含从程序的原始启动输入的先前值,然后将在用户输入一个值后更新更新临时数据的密钥。 在 asp.net web mvc 5.0 项目中有一种方法可以检查浏览器是否已关闭,这样我就可以删除最后一个控制器内部的逻辑,该控制器将密钥删除到检查逻辑中如果浏览器已关闭?
【问题讨论】:
-
这可能不是一个好主意。在许多情况下,这将无法正常工作,例如如果网络连接不稳定,或者用户打开了两个选项卡并关闭了其中一个。此外,如果您实际存储用户名,则存在安全隐患,例如你已经成熟了会话固定攻击。标准方法是保留任何临时数据,但在用户首次访问站点时完全重置临时数据(和所有其他会话变量)。从用户的角度来看,这将产生或多或少相同的效果。
标签: c# asp.net-mvc tempdata