我遇到问题requestValidationMode="4.0"
如果您在表单中提交html标记,请求将被标记为无效,应用将抛出A potentially dangerous Request.Form value was detected from the client
。
两个最受欢迎的解决方案是在全局级别使用requestValidationMode="2.0"
和validateRequest='false'
结合使用,或者将全局保持为4.0
,但创建一个列为2.0
的子目录在它的web.config中,放置你不想在那里验证的所有页面。
我真正想要的是保留4.0但是为4.0 RequestValidator类添加一点逻辑,以防止它在表单中只是HTML时抛出错误。
答案 0 :(得分:1)
我很蠢。它位于documentation。
namespace WebApplication4
{
public class CustomRequestValidator : RequestValidator
{
protected override bool IsValidRequestString(
HttpContext context, string value,
RequestValidationSource requestValidationSource, string collectionKey,
out int validationFailureIndex)
{
return base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);
//validationFailureIndex = -1;
//return true;
}
}
}
<system.web>
<httpRuntime targetFramework="4.5" requestValidationType="WebApplication4.CustomRequestValidator "/>
...
</system.web>