我有一个angularJS应用程序,我在其中使用Angular's CSRF protection mechanism进行所有POST,PUT和其他非安全的Web服务调用。除了一种情况外,它运行良好:一个multipart / form-data POST,它将文件上传到服务器。
在这种情况下,由于我将表单和文件数据直接发布到Web服务,因此不涉及角度$ http服务,因此不会像使用XHR那样将CSRF标头附加到请求中请求。
我有几个问题:
答案 0 :(得分:0)
如果您通过XQuery通过jQuery将文件上传到服务器,则可以添加默认标题:
$.ajaxSetup({
headers: {
"requestVerificationToken": myToken
}
});
答案 1 :(得分:0)
我最终决定,由于帖子是由表单而不是AJAX创建的,因此该方法应该是标准的MVC控制器,而不是WebAPI控制器。这样我就可以在表单上使用标准的MVC Html.AntiForgeryToken
帮助器,并在方法上使用ValidateAntiForgeryToken
属性。