ASP.NET 使用防伪令牌通过流式传输核心文件上传

ASP.NET Core file uplloading through streaming with anti forgery token

我正在使用 MultipartReader 通过流式传输上传文件,我想知道是否有一种方法可以通过代码验证防伪令牌。如果我将 ValidateAntiForgeryTokenAttribute 添加到方法中,那么它将使用表单的 body 并且我会得到一个错误:

Unexpected End Of Stream Exception

我可以在客户端使用 JS 来拦截表单的提交事件,但这是一个普通的 MVC 表单,它也使用 MVC 验证框架(我认为拦截表单的提交事件以传递令牌在 header 中不能很好地处理验证的表单提交拦截。

关于如何解决这个问题有什么想法吗?

谢谢。

我已经按照这个 sample 更新了客户端脚本,以便它在执行提交之前检查表单是否有效。总体而言,它比预期的要容易:

$("#docForm").on("submit",
      (e) => {
        const frm = $(e.target);
        if (!frm.valid()) {
          return false;
        }
 // more code
 }