问题标签 [request-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
100 浏览

c# - 尽管具有 [AllowHtml] 属性,但仍抛出 HttpRequestValidationException

我有以下视图模型,它接受密码更改值。因此,它应该接受特殊字符,包括触发HttpRequestValidationException- '<' 和 '>' 的字符。所以我[AllowHtml]在适当的属性上添加了属性:

这里ShowPasswordUserMessage在服务器上设置并在视图中使用。

当我输入诸如“<Script/>1234”之类的密码时,一切正常,模型验证,执行操作,ViewResult执行,然后,ViewResult在客户端和客户端之间的某个地方,HttpRequestValidationException抛出这个堆栈跟踪:

事件中,我在 Global.asax.cs 中发现了Application_Error它,除了通用消息之外,向用户返回任何有用信息都为时已晚。

我尝试了什么:

  • 我有一个全局变量HandleErrorAttribute,我在其中检测到一个HttpRequestValidationException并将其作为视图中的验证消息返回给用户。当用户在不允许的地方输入 HTML 时,这适用于其他模型和视图,但在这种情况下,OnException不会触发属性的覆盖。
  • 我用上面的属性修饰了具体的动作
  • IResultFilter在上面的属性中实现并覆盖了OnResultExecuted, 来测试视图执行后是否抛出异常。该ResultExecutedContext.Exception属性为null
  • 我覆盖了just 的BindModel方法,DefaultModelBinder看看它是否抛出异常,但它没有。
  • 我将堆栈跟踪中提到的 Application Insights 升级到了最新版本,从 2.16 到 2.20。
  • 该模型直接在属性上具有其属性。[MetadataType]我尝试使用属性将它们移动到元数据类型。它起作用了,只是仍然抛出了异常。

在这一点上,我不知道为什么抛出异常,以及如何防止或捕获它。任何帮助表示赞赏。

0 投票
3 回答
43 浏览

laravel - Laravel 更新请求验证不适用于 9.x

我在请求文件夹上创建了一个验证请求文件。它在新插件中工作正常。但是当我更新时,它也不起作用,我传递了唯一的 $id 但不起作用。

一个。资源控制器更新方法

湾。验证码

当我更新时,此消息显示我

当我更新时,此消息显示我