kindeditor 上传兼容ValidateAntiForge

2024-02-01  本文已影响0人  Sunday_1024

.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

上一篇下一篇

猜你喜欢

热点阅读