.net8 mvc ValidateAntiForgeryToken 是预防跨网站请求伪造 (XSRF/CSRF)的特性,它会在view上自动生成个隐藏域
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8NrAkS ... s2-m9Yw">
如上,通过value值来验证是否为合法身份。
如果是用kindeditor 上传图片等请求 默认是没有此身份的token值,需要手动添加这个参数。查了下kindeditor 的api,还真有扩展参数,如下:
F.ready(function () {
var editor_f_Info = KindEditor.create('textarea#' + editorid_f_Info+'-inputEl', {
width: '100%',
//其他代码略....
//上传图片、Flash、视音频、文件时,支持添加别的参数一并传到服务器。添加__RequestVerificationToken
extraFileUploadParams:{'__RequestVerificationToken':$('input[name="__RequestVerificationToken"]').val()},
});
});
mvc 后台代码完美兼容 [ValidateAntiForgeryToken], 无须更改kindeditor源码
[HttpPost]
//[AllowAnonymous]
[ValidateAntiForgeryToken]
public IActionResult UploadFile(IFormFile imgFile,string dir)
{
.....
}
如果还想添加其他的参数, extraFileUploadParams 可以写多个参数。
参考:
https://learn.microsoft.com/zh-cn/aspnet/core/security/anti-request-forgery?view=aspnetcore-8.0
http://kindeditor.net/docs/option.html#extrafileuploadparams
网友评论