ASP.NET MVC AntiForgeryToken 和缓存

2024-02-09

我目前正在开发一个 ASP.NET MVC 项目,并遇到了一个看起来很奇怪的错误。

在 ASP.NET MVC 模板表单中,始终会获得 AntiForgeryToken(因此我相信这是最佳实践)。然而,AntiForgeryTokens 似乎不能很好地与缓存配合使用。

例如,当我打开一个包含 AntiForgeryToken 表单的网站并复制浏览器窗口时,两个窗口都具有完全相同的 AntiForgeryToken,导致发布表单时出现异常。禁用缓存时不存在此问题(通过 ActionFilter NoCache,请参阅禁用整个 ASP.NET 网站的浏览器缓存 https://stackoverflow.com/questions/1160105/asp-net-mvc-disable-browser-cache).

所以我想我的问题是:事情应该是这样吗?除了禁用缓存之外还有其他方法可以解决这个问题吗?

特别是默认的 ASP.NET MVC 模板包含 AntiForgeryTokens 但不禁用缓存(因此容易出现上述错误)这一事实让我感到好奇。

提前致谢!


这是预期的行为。缓存可以很好地缓存答案,包括 AntiForgeryToken 的值。禁用表单上的缓存,特别是使用 AntiForgeryToken 的页面上的缓存。如果您进一步考虑这一点,如果您使用的是数据输入应用程序,您是否想要缓存数据输入表单?可能不会。然而,您确实希望缓存大量报告——即使它只是微缓存——一两秒。

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

ASP.NET MVC AntiForgeryToken 和缓存 的相关文章

  • 执行Insert命令并返回Sql中插入的Id

    我正在 MVC 4 中使用 C 将一些值插入到 SQL 表中 实际上 我想插入值并返回最后插入记录的 ID 我使用以下代码 public class MemberBasicData public int Id get set public
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • 外部组件中的控制器上的 404

    我在解决 Asp Net MVC 4 项目中的 404 响应时遇到问题 它是在 VS2012 中构建的 目标版本为 4 5 我已将预编译的视图和控制器内置到独立的 DLL 中 我能够动态加载 DLL 并从我的核心项目中检查它们 甚至调用它们
  • MVC4 枚举和单选按钮列表

    我已经看到了一些关于此的线程 但似乎没有一个适用于 MVC4 因为 RadioButtonFor html 扩展方法 帮助程序不存在 假设我有一个枚举列表 即航空公司 public enum Airlines Unknown 0 Briti
  • 带或不带虚拟目录的 CssRewriteUrlTransform

    我们在我们的网站中使用 MVC 捆绑 CssRewriteUrlTransform确保图像 url 可在动态捆绑 css 文件中使用 但这仅在不使用虚拟目录时有效 即 http localhost VirttualDir不起作用但是http
  • 十六进制值 0X03 是无效字符

    这是一个网页的源码 p Da 32 brow 35 a G rn x3 icza p p 我需要浏览此页面并复制显示的文本 之后 我将此文本粘贴到 ASP NET MVC 应用程序的输入文本框中 以便在数据库中创建新记录 布局页面的元字符集
  • 如何使用 gzip 压缩 .net 对象实例

    我想在将数据库查询结果添加到缓存之前对其进行压缩 我希望能够压缩任何引用类型 我有一个用于压缩字符串的工作版本 这个想法基于 scott hanselman 的博客文章http shrinkster com 173t http shrink
  • 当键具有不同的时间范围并且缓存已满时,memcached 过期行为是什么?

    我知道 redis 会自行使键过期 释放内存 并想知道 memcached 是否会有同样的行为 假设我有一种很少过期的缓存密钥 我们称之为 A 另一种每 5 分钟过期 使用 Ruby on Rails expires in 5 minute
  • Ajax.ActionLink 和确认对话框

    我有一些问题 Ajax ActionLink 我想显示确认对话框 是的 我知道我可以这样做 Ajax ActionLink Do it Delete new AjaxOptions Confirm Are you sure 但我想要有自己的
  • MVC 对元素组强制进行 jQuery 验证

    我正在使用 MVC 4 设计的表单具有多个 DIVS 每个 DIVS 中有许多元素 我的目标是在用户填写字段时打开 关闭 DIVS 但是 我想对每个 DIV 而不是整个表单使用不显眼的验证 不单独检查每个元素是否可能 也许使用 DIV ID
  • MVC 4 IntelliSense 无法在 Visual Studio 2010 的 Razor 中工作

    我将 Visual Studio 2010 与 ASP NET MVC4 一起使用 并且 IntelliSense for Razor 语法在应用程序的视图中对我不起作用 我能做些什么 还引用自 http sebnilsson com 10
  • 将查询字符串字典(或关联数组)转换为字典[重复]

    这个问题在这里已经有答案了 我正在尝试接受以下形式的查询字符串 param key1 value1 param key2 value2 并将其转换为 C MVC 4 中的字典 这在 PHP 中很简单 但我还没有找到任何在 C 中重现此操作的
  • 缓存友好的矩阵移位功能

    我想将二维方阵的第一行移到最后一行 所以如果我有一个像A这样的矩阵 我想要得到B 我可以使用两个简单的 for 循环来做到这一点 例如 void shift int M int N int A M N int i j temp for i
  • 找不到实体框架数据提供程序,entityclient

    首先 我发现许多问题和许多答案与我的问题相关或被认为与我的问题相同 但似乎没有什么对我有用 我有一个全新的模板化 MVC4 网站 全新安装的 sql server 2008 r2 中有一个全新的数据库 我在数据库上运行 aspnet reg
  • 何时使用包含引用类型的值类型数组而不是引用类型数组?

    假设我有以下内容 public class MyElement Serializable StructLayout LayoutKind Sequential struct ArrayElement internal MyElement E
  • 咖啡因与番石榴缓存

    根据这些微观基准 https github com ben manes caffeine wiki Benchmarks事实证明Caffeine https static javadoc io com github ben manes ca
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso
  • 在 ASP.NET MVC 4 中使用 jQuery Mobile 1.3 面板时的双滚动条

    我无法弄清楚这一点 将以下代码放入布局页面并在浏览器中查看后 我将显示 2 个垂直滚动条 div div 遇到了类似的问题 并注意到只有在使用我的自定义主题时才出现这种问题 我以错误的顺序将自定义主题添加到页面 这导致了问题 正确的顺序是
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 执行 SET {Key} 超时,inst: 0,mgr: Inactive,queue: 2, qu=1, qs=1, qc=0, wr=1/1, in=0/0

    我正在尝试使用 StackExchange Redis 客户端将 90 KB pdf 文件保存到 Azure Redis 缓存中 我已将该文件转换为字节数组并尝试使用 stringSet 方法保存它并收到错误 Code byte bytes

随机推荐

  • 将关联数组转换为具有关联子数组的索引数组

    我有一个带有国家 地区数据的简单关联数组 如下所示 array array country1 gt CountryOne country2 gt Country Two 我怎么能够动态地将此数组转换为多个数组 如下所示 array 2 0
  • 将 android 预览帧转换为 OpenCV Mat

    我正在尝试从相机预览中捕获图像并使用 OpenCV 将其转换为 Mat 对象 我注册了callbak方法public void onPreviewFrame byte data Camera camera 所以我从相机收到所有预览帧 但无法
  • 在laravel 4中的插入查询存储过程中传递参数

    我创建了一个插入过程 但不知道如何在控制器和模型中调用参数 名称 和 路径 存储过程 CREATE DEFINER root localhost PROCEDURE insert document details IN name VARCH
  • 在 Angular 2.0.0-beta.0 中,表单输入的 Observable 中缺少 map() 和 filter()

    在 Angular 2 0 0 alpha 47 中Observable从呼叫中返回formInput valueChanges 拥有所有高阶函数 即我可以做这样的事情 this search valueChanges debounceTi
  • 找不到“org.eclipse.persistence”Maven 依赖项

    我使用 m2eclipse maven 插件安装了 Eclipse Helios 我想使用 JPA 创建一个应用程序 所以 我所做的是 新建 gt Maven 项目 然后选择 Maven 默认原型 问题是我想添加我找不到的 org ecli
  • Java中synchronized关键字的记忆效应

    这个问题之前可能已经得到解答 但由于问题的复杂性 我需要确认 所以我重新表述这个问题 问题1 当线程进入同步块时 内存屏障将包括所触及的任何字段 而不仅仅是我同步的对象的字段 因此 如果在同步块内修改许多对象 则会在线程内存缓存之间进行大量
  • 如何通过Javascript更改CSS类样式?

    根据我正在阅读的书 当你使用Javascript时 最好按类更改CSS 但如何呢 有人可以为此提供一个示例片段吗 假设您有 div class oldclass text div 以及以下样式 oldclass color blue new
  • 是否有 VBA 代码来查看 Enterprise Project 2013 文件在打开之前是否已签出?

    试图帮助我们的 Project 2013 用户使用一些 VBA 代码 但我们似乎无法找到答案来查找是否使用 VBA 在我们的 PWA 服务器上检出 Project 2013 文件 它们基本上有一个项目列表 设置为单个项目文件中的任务 VBA
  • Android 定时器摆动

    我需要创建一个计时器来定期更新用户界面 但 Swing Timer 类在 Android 上不可用 我该如何解决这个问题 我会避免创建线程 然后使用 java util 包中的 Timer 类 你可以使用Handler http devel
  • 如何在 Mac OS X 上获取内存泄漏的行编号堆栈跟踪?

    我已经成功获得了 Xcodeleaks报告我的命令行 GCC Ada 程序中的泄漏的工具 通过添加delay 11 0 最后让leaks进行检查 然后 export MallocStackLogging 1 foobar leaks foo
  • 正则表达式中的[^.]*是什么意思?

    我试图从以下文本中获取 482 75 span 482 75 span 我使用的正则表达式是 regex span span 它起作用了 但我不明白的是为什么 可以在这里匹配 aapl 我的理解是 表示除换行符之外的任何字符 表示否定 因此
  • 如何在 ASP.NET Core MVC 上正确设置 cookie 的过期日期时间

    我正在尝试从后端 Asp Net core 向浏览器设置一个 Cookie 该 Cookie 应在第二天同一时间减去 5 分钟后过期 这是来自控制器的 C 代码 HttpContext Response Cookies Append MyC
  • Erlang - 随机数生成器

    我正在使用以下内容生成一个近乎随机的数字 3 gt erlang ref to list make ref Ref lt 0 0 0 36 gt 我想要的是00036 嗯 这就是我在上一篇文章中被告知我可以做的事情 我发现从 make re
  • 是否可以将数据导入Hive表而不复制数据

    我将日志文件以文本形式存储在 HDFS 中 当我将日志文件加载到 Hive 表中时 所有文件都会被复制 我可以避免所有文本数据存储两次吗 编辑 我通过以下命令加载它 LOAD DATA INPATH user logs mylogfile
  • 防止转换 HTML 实体时出现工具提示

  • 组件 props 中的函数参数不兼容

    我有一个组件 它接受一个项目列表 已知有一个 ID 以及一个过滤这些项目的函数 具有 ID 的类型是项目的通用类型 所有项目都将具有 但更具体的项目将包括其他道具 type GenericItem id string type Specif
  • 为什么给字符串添加null没有异常?

    为什么这不抛出异常不明白 obj 为 null object obj null Console WriteLine Hello World obj 这编译为 Console WriteLine String Concat Hello Wor
  • 如何使用CSS仅显示字符串的一部分

    我希望能够显示最多 10 个字符的字符串 如果字符串超过 10 个字符 我想在末尾附加 例如 如果我有字符串 helloworldmynameisryan 我希望它像这样显示 helloworld 我只是在 div 中显示我的字符串 如下所
  • 如何将 IAM 角色添加到 AWS 中的现有实例?

    我想添加一个IAM对现有角色的作用EC2AWS 中的实例 我尝试使用AWS CLI 但是 我找不到办法做到这一点 自 AWS CLI 起v1 11 46 昨天刚刚发布 参见变更日志文件 https github com aws aws cl
  • ASP.NET MVC AntiForgeryToken 和缓存

    我目前正在开发一个 ASP NET MVC 项目 并遇到了一个看起来很奇怪的错误 在 ASP NET MVC 模板表单中 始终会获得 AntiForgeryToken 因此我相信这是最佳实践 然而 AntiForgeryTokens 似乎不