.net 检测到潜在危险的请求。表单值:主动或事后处理这些错误

.net 检测到潜在危险的请求。表单值:主动或事后处理这些错误,.net,asp.net,vb.net,validation,.net,Asp.net,Vb.net,Validation,我在错误日志中越来越多地注意到这个错误。我已经通读了这里讨论这个错误的问题,但它们没有说明我想做什么(见下文) 我正在考虑三种选择,按优先顺序排列: 1) 提交表单时(如果有帮助的话,我几乎只使用FormView),如果检测到潜在的危险字符,会自动将其删除并提交 2) 提交表单时,如果检测到潜在的危险字符,请提醒用户并让他们在重试之前修复它 3) 异常生成后,进行处理并提醒用户 我希望前两个选项中的一个能够在全球范围内做一些事情……我知道第三个选项我必须改变大量我已经准备好的试捕块。可行,但劳动

我在错误日志中越来越多地注意到这个错误。我已经通读了这里讨论这个错误的问题,但它们没有说明我想做什么(见下文)

我正在考虑三种选择,按优先顺序排列:

1) 提交表单时(如果有帮助的话,我几乎只使用FormView),如果检测到潜在的危险字符,会自动将其删除并提交

2) 提交表单时,如果检测到潜在的危险字符,请提醒用户并让他们在重试之前修复它

3) 异常生成后,进行处理并提醒用户

我希望前两个选项中的一个能够在全球范围内做一些事情……我知道第三个选项我必须改变大量我已经准备好的试捕块。可行,但劳动密集型。如果可能的话,我宁愿对此采取积极主动的态度,同时避免出现例外情况

也许#1的一种方法是编写一段代码,在插入/更新事件期间循环遍历formview中的所有文本输入字段,并去掉字符。我同意这一点,但我不希望为了实现这一点而大量修改所有插入/更新事件。或者我只是创建一个不同的类来执行文本检查/删除,并且在每个插入/更新事件中只插入一行代码。如果有人能想出这些方法的一些示例代码,那将是一个帮助


谢谢你的任何想法或信息。我当然也愿意接受其他解决方案;这些只是我想到的3个。我可以说,我不想关闭请求验证。

一个更简单的解决方案可能是:只允许文本框中使用字母数字字符,这种解决方案在许多情况下都非常有效。当然,这对你期望得到的任何大文本块都不起作用,但对于简单的事情,它就像一个符咒


检查表单提交时字段中是否存在非字母数字字符,并使用一些javascript抛出一个警报对话框,这非常简单

当然,在实际处理提交的值之前,在服务器上运行相同的检查。

我更喜欢2或3。在#1中,您正在更改用户在不知情的情况下输入的内容


您可以继续并钩住表单的Submit事件,遍历可编辑字段并进行健全性检查

对于oprion#3,您可以重写Page类的OnError方法,并可以提供一条指示问题的自定义错误消息。(此外,您还可以使用ELMAH或Application_Error event)来处理这些错误


我建议您在进行验证时既使用客户端方法,也使用服务器端方法。

“检查表单提交时字段中存在的非字母数字字符,然后使用一些javascript抛出警报对话框,这非常简单。”唯一的问题是如何实现它?你有没有关于如何通过javascript检查所有文本输入字段的代码示例?我不能为每个表单上的每个文本输入区域自定义代码(每个字段都有字段名等)。这将花费很长时间…我不想为了完成这一任务而修改那么多代码。通常,您会向希望应用此行为的每个字段添加一个css类,然后让javascript获取该类的所有元素,并对它们应用相同的逻辑。您是否使用任何类型的客户端库?使用jQuery执行此操作非常简单:使用$('.CLASS')获取所有元素的集合,循环遍历它们,调用.val()获取当前字段值,并使用如下内容进行检查:““您可以继续并钩住表单的提交事件,并遍历可编辑字段并进行健全性检查。”你有/能找到这方面的代码示例吗?我来调查一下。部分:防止以编程方式调用_doPostBack以在所有字段之间循环的表单提交,您可以使用document.getElementsByTagName