C# 从向web api发布数据和文件的客户端检测到潜在危险的请求。表单值
我有一个表单,用于将数据和文件发布到C# 从向web api发布数据和文件的客户端检测到潜在危险的请求。表单值,c#,angularjs,asp.net-web-api,C#,Angularjs,Asp.net Web Api,我有一个表单,用于将数据和文件发布到webapi端点。其中一个数据字段是使用summernote插件的RichTextField 发布到端点的angularjs脚本如下所示: $scope.transaction = {}; var files = $scope.myFile; var fd = new FormData(); angular.forEach(files, function (value, key) { fd.append("file" + key, value[0])
web
api
端点
。其中一个数据字段是使用summernote
插件的RichTextField
发布到端点的angularjs
脚本如下所示:
$scope.transaction = {};
var files = $scope.myFile;
var fd = new FormData();
angular.forEach(files, function (value, key) {
fd.append("file" + key, value[0]);
});
fd.append("fileContent", JSON.stringify({ fileContent: $scope.transaction }));
dataService.uploadFile(baseAddress + "/Generate", fd)
.success(function (data) {}).error(function (data) { });
[HttpPost]
public async Task<IHttpActionResult> Generate()
{
try
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var contentResult = System.Web.HttpContext.Current.Request.Form;
var key = contentResult.AllKeys[0];
var val = contentResult.GetValues(key)[0];
接受请求的端点如下所示:
$scope.transaction = {};
var files = $scope.myFile;
var fd = new FormData();
angular.forEach(files, function (value, key) {
fd.append("file" + key, value[0]);
});
fd.append("fileContent", JSON.stringify({ fileContent: $scope.transaction }));
dataService.uploadFile(baseAddress + "/Generate", fd)
.success(function (data) {}).error(function (data) { });
[HttpPost]
public async Task<IHttpActionResult> Generate()
{
try
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var contentResult = System.Web.HttpContext.Current.Request.Form;
var key = contentResult.AllKeys[0];
var val = contentResult.GetValues(key)[0];
我试过这个:
[System.Web.Http.HttpPost, System.Web.Mvc.ValidateInput(false)]
也
您必须允许html标记,因为summernote数据包含它们。要做到这一点,您需要添加到您的方法中
您可能需要进行一些修补,因为它可以非常轻松地执行xss和其他操作。尝试添加到您的web.config@J.Loscos,因为它不起作用。我试图重现您的错误,但在我的机器上就可以做到这一点。我不知道为什么它对您不起作用。您使用的IIS、.NET和ASP.NET版本是什么?IIS express、.NET 4.5.2AllowHtml是要在模型上使用的属性属性。因此,他需要在控制器操作中添加一个模型parameter@J.Loscos啊,你当然是对的。我已经有一段时间没有使用它了。@TestzWCh我知道AllowtmlatAttribute。发生错误的点不在模型的强制转换点。