我在ajax调用时遇到过为POST方法实现防伪令牌的情况,我在这里做的几件事是
[1]包括我的 POST 控制器方法[ValidateAntiForgeryToken]
属性。
[2]在我的 js 中$.ajax
调用更改为 $.ajaxAntiForgery
。
有一个 telerik 上传控件,我在其中从 cshtml(而不是 ajax 调用)触发控制器方法 - 下面的 cshtml 代码片段
@{ var upload = @Html.Telerik().Upload()
.Name("attachments")
.Multiple(true)
.Async(async => async.Save("MyMethodName", "MyConrollerName")
在这种情况下,如何实施防伪?我需要在 cshtml、控制器中做哪些更改?
谢谢阿达什
如果您使用 MVC 的剑道上传包装器,防伪将自动发送到服务器。
由于使用的是旧扩展,因此可能需要使用 OnUpload 事件手动查找该值并将其发送到服务器。
例如
function onMyUpload(e){
e.data = { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() };
}