c# - 将值存储在 TempData 中对多个并发用户安全吗?

标签 c# asp.net-mvc razor

我一直在使用 TempData 在页面请求之间保留我的模型,否则我将无法访问我需要的模型中类的特定属性。

(这是一个轻微的题外话和简化,但基本上我有一个对象列表,它有一个 .name 和一个 .active 属性。我有一个 CheckBoxFor 的 .active 属性,它被保留了,但是 .name 属性是提交表单时设置为 null;我也需要访问该属性,所以我一直将旧模型存储在 TempData 中,然后在需要时复制该属性。有更好的方法吗?我令我感到非常惊讶的是,我正在使用的对象的属性将被取消。)

当用户选中复选框并提交表单时,该模型存储在 TempData 中。稍后,当用户单击按钮时,它会从 TempData 中读出。 (没有干预请求。)

以这种方式使用 TempData 对多个用户来说是否安全?换句话说,是否每个客户端都有自己的 TempData 副本?我担心的情况大致如下:

  1. 用户 1 单击复选框,将他的模型保存到 TempData
  2. 用户 2 单击复选框,将她的模型保存到 TempData
  3. 用户 1 单击按钮,提交表单并从 TempData 读取模型

我不确定用户 1 将获得哪种型号。有人可以启发我吗?

最佳答案

TempData 是 session 绑定(bind)的。用户 1 只会看到它的 TempData。

关于c# - 将值存储在 TempData 中对多个并发用户安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663141/

相关文章:

c# - MVC 中的显示与编辑模式

c# - 如何使用 Windows 和/或 PowerShell 使用的接口(interface)和/或方法创建类库?

c# - 如何在 C# 中从 USB 闪存驱动器获取 VID/PID?

asp.net-mvc - 将ViewData传递给RenderPartial

.net - .NET 4.6.2 中的多语言数据注释

razor - (Nancy) Razor View Engine 部分 View 渲染完整 HTML

c# - 在 Visual Studio Code [C#] 中键入时,将类左大括号放在新行上

c# - 识别在 Java 和 C# 中编译但运行不同的代码

asp.net - 内存缓存为空: Returns null after being set

c# - 如何像 c# 中的 html 解析器一样解析 asp.net mvc razor view (cshtml)