Valums 文件上传器 - 包括 ValidateAntiForgeryToken

2024-06-24

我正在尝试使用 MVC 保护我的上传控制器方法ValidateAntiForgeryToken但我正在努力弄清楚如何获得__RequestVerificationToken包含在帖子中。

我的动作是这样的:

[HttpPost, ValidateAntiForgeryToken]
public ActionResult FileUpload(HttpPostedFileBase qqfile)

纵观整个文档 http://valums-file-uploader.github.io/file-uploader/对于上传者来说,我找不到任何暴露的钩子可以让我在 qq 代码之外访问以操纵它生成的表单。

还有其他人设法让它发挥作用吗?

编辑表单创建的源文件后,我的请求仍未通过验证:

Request

http://localhost:54275/UserProfile/FileUpload?qqfile=266758_10150696082935268_8163320_o.jpg

Host: localhost:54275
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
X-Requested-With: XMLHttpRequest
X-File-Name: 266758_10150696082935268_8163320_o.jpg
Content-Type: application/octet-stream
X-Mime-Type: image/jpeg
Referer: http://localhost:54275/UserProfile/Edit
Content-Length: 625352
Cookie: __test=1; RememberMe=-1167340540^1#-5833880764017141030; __RequestVerificationToken=BEIHblTcEaCio_1_i6bJnSYmituqQfq9y2ge63T85w15pAhbPldPZqY8DhLTubmtmd9OLtAuJcHdmfaFHSbn1L7oAYAtxDJWdMOOzNrddhU1; DotNetOpenAuth.WebServerClient.XSRF-Session=O-l5-Hv0flYqKL27j0TGhA; .ASPXAUTH=52C5EDFB92A09FA0395676E23BE1EBBBF03D3E88EF7C81761B76C1C8EF67936C0D9FBFD730ED77B0246C49757828A7C17D0DD7644A1C50988ECFF4C3DEDF15783E5FD7C4BA97E484F9FD6460EB6A5310E27453B461E320D10E74A5F8AEE1C0A5B1367D0DB4060958B48DACB12E80AA23; TCSESSIONID=D9016B850A1BCFD6921E274467F52CEE
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Fiddler-Encoding: base64

我正在使用 FineUploader 5.11.10 版本(Valum 的 FileUploader 重命名)提及 FineUploader 历史 https://stackoverflow.com/a/17330174/4975760) 它确实包含指定表单的功能,请参阅表格选项 http://docs.fineuploader.com/branch/master/api/options.html#form

如果您的表单不包含任何其他表单值,则使用 AntiForgeryToken 验证的 FineUpload 示例是包含具有某个 id 的表单(下面示例中的 testForm)以及 AntiForgeryToken。

@using (Html.BeginForm(MVCHelpers.Bank.Transactions.UploadFile(), FormMethod.Post, new { id = "testForm" }))
{
    @Html.AntiForgeryToken()
}

并在 FineUploader 中指定它还必须发送的表单:

<div id="fileUploadContainer"></div>
<script>
    var uploader = new qq.FineUploader({
        element: document.getElementById("fileUploadContainer"),
        ...
        form: {
            element: "testForm",
            autoUpload: true
        }
    });
</script>

这使您可以在操作中结合 [ValidateAntiForgeryToken] 上传文件。如果上传是其他表单值的一部分,您还可以通过指定该表单的 id 来指定真实表单。请注意 autoUpload true,因为当您设置表单元素时它默认为 false。

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

Valums 文件上传器 - 包括 ValidateAntiForgeryToken 的相关文章

随机推荐

  • 不支持从“describe”返回 Promise。测试必须同步定义

    特定测试通过了 但我得到了这个 console log node modules jest jasmine2 build jasmine Env js 502 Test suite failed to run Returning a Pro
  • PhpStorm - xDebug 按需未附加

    我尝试了你的新功能 xedbug ondemand 我坚持这些指南 https www jetbrains com help phpstorm 2016 3 configuring xdebug html https www jetbrai
  • O(log n) 总是比 O(n) 快吗

    如果有 2 种算法以不同的复杂度计算相同的结果 O log n 总是会更快吗 如果是这样请解释一下 顺便说一句 这不是作业问题 不会 如果一种算法运行在N 100另一个在 log N 100 那么对于较小的输入大小 第二个将会较慢 渐近复杂
  • 参数类型“Widget?”无法分配给参数类型“Widget”

    我将应用程序包装在滚动配置中以删除滚动发光 这总是有效 但自从我使用 flutter 以来已经有一段时间了 所以我创建了一个新项目 但它给出了这个错误 ProviderScope child MaterialApp title testin
  • lmer 模型产生 NA 的置信区间

    NAlmer 模型的置信区间是否发生 我怎样才能摆脱它 simfun lt function J n j g00 g10 g01 g11 sig2 0 sig01 sig2 1 N lt sum rep n j J x lt rnorm N
  • 无法加载文件或程序集 SQLitePCLRaw.core

    我在用 Microsoft EntityFrameworkCore Sqlite 版本 2 2 4 Microsoft EntityFrameworkCore 版本 2 2 4 我的 net core 类库上的 nuget 包 将我的类库添
  • ValueError: X.shape[1] = 2 应等于 13,即训练时的特征数量

    我试图通过使用 scikit learn 的 SVM 文档分类器来预测肺癌数据 我使用以下代码但出现一些错误 我用过matplotlib pyplot as plt用于数据图但出现错误 在这里 我明智地使用了肺癌数据风险因素 输入文件 GE
  • 为什么Python中的readline()比readlines()慢很多?

    面试的时候 面试官问我为什么readline 比readlines 在Python中 我回答说readlines 需要多次阅读 这就需要更多的花费 我不知道我的回答是否正确 如果我的答案正确的话 花费是多少 Thanks PS 我知道之间的
  • mvc4 - db.SaveChanges() - 小数值超出范围

    我正在构建一个 MVC4 应用程序 它要求我在 创建 新记录时生成 21 位密钥 这是我定义数据库列的上下文 public class cust public int ID get set public decimal CPCUST KEY
  • java:全局变量在线程中是否可见

    如果我在主线程中声明一个全局变量 假设我从主线程运行一个新线程 新线程可以访问主线程中的全局变量吗 msg 字符串是我要访问的变量 A simple banner applet This applet creates a thread th
  • Json,网络不工作

    我正在尝试在 C 中解析带有 json 的网络 我正在使用 json net 但它显示以下异常 Error reading JArray from JsonReader Current JsonReader item is not an a
  • ReportLab 中的非编号页面

    是否可以使用 ReportLab 生成 PDF 文件 将首页 可能还有目录 排除在 Platypus 完成的页码之外 是的 第 5 章的第一个例子用户指南 http www reportlab com docs reportlab user
  • 无法找到或加载主类package.class

    我知道这个问题已经被回答过很多次了 但不幸的是我找不到我的问题的正确答案 下面是我的包结构 在我的包内我有 SimpleTest java d junit src junitfaq SimpleTest java 在 d junit src
  • 如何在flutter中准备字符串变量格式? [复制]

    这个问题在这里已经有答案了 我想将 Roll no 传递给我的其余 API 吗 我想通过 Roll no 像这样的格式 String roll no 3250 10 如何准备这个格式 我在 3250 和 10 之间添加了 但它给出了类似 E
  • 如何在运行时获取自定义 Eclipse 功能的版本号?

    我想在其透视图的标题栏中显示我正在开发的自定义 Eclipse 功能的版本号 有没有办法从运行时插件和 或工作台获取版本号 就像是 Platform getBundle my feature id getHeaders get Bundle
  • 名称节点与辅助名称节点

    Hadoop 具有一致性和分区容忍性 即它属于 CAP 理论的 CP 类别 Hadoop不可用 因为所有节点都依赖于名称节点 如果名称节点崩溃 集群就会崩溃 但考虑到 HDFS 集群有一个辅助名称节点 为什么我们不能称 hadoop 为可用
  • JDBC 驱动程序的版本和数据库的版本必须完全匹配吗?

    假设我在服务器上运行 postgresql 9 1 但我选择使用 9 2 驱动程序来访问它 这行得通吗 如果不是 这些版本检查是否始终强制执行 或者是否取决于您的 DBMS 不是强制性的 驱动程序可以支持多个版本的 RDBMS 或者仅支持特
  • 如何让 Maya 通过本地主机 IP 进行通信?

    我一直在研究如何让 Autodesk Maya 通过本地主机 IP 最好是 TCP 上的网络进行通信 但运气不佳 我的目标是使用我编写的快速java应用程序来控制maya 以操纵曲线选择等 如果有一种方法可以在梅尔脚本中做到这一点 那就太棒
  • 为什么复制构造函数被调用两次?

    在下面的代码中 复制构造函数被调用了两次 为什么 include
  • Valums 文件上传器 - 包括 ValidateAntiForgeryToken

    我正在尝试使用 MVC 保护我的上传控制器方法ValidateAntiForgeryToken但我正在努力弄清楚如何获得 RequestVerificationToken包含在帖子中 我的动作是这样的 HttpPost ValidateAn