【问题标题】:ValidateInput(false) and AllowHtml attributes still cause 'A potentially dangerous Request.Form value was detected'ValidateInput(false) 和 AllowHtml 属性仍然会导致“检测到潜在危险的 Request.Form 值”
【发布时间】:2011-10-25 12:43:53
【问题描述】:

我的模型上有:

public class EmailTemplateModel
{
    public int EmailTemplateId { get; set; }

    [Required]
    public string Name { get; set; }
    [Required]
    public string Subject { get; set; }

    [AllowHtml]
    [Required]        
    public string Content { get; set; }
}

在我的控制器上:

[ValidateInput(false)]
public ActionResult AddNewTemplate(EmailTemplateEditorModel model)
{
}

但我收到以下错误:

从客户端检测到有潜在危险的 Request.Form 值

即使应该使用 ValidateInput/AllowHtml 属性禁用此检查,为什么我会收到这些错误?查看其他帖子不清楚我是否需​​要这两个属性或只需要其中一个属性...

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    你需要添加

    <httpRuntime requestValidationMode="2.0" />
    

    到您的web.config。见ASP.Net 4.0 Breaking Changes。尽管配置值令人困惑,但这是 3.54.0 之间的重大变化 - 验证现在在管道中运行得更早,在 MVC 有机会根据您的属性禁用它之前。

    【讨论】:

    • 这行得通!!!谢谢!!!我们是否将 requestValidationMode 指向不同的框架或程序集版本?还是没看懂……
    猜你喜欢
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 2011-03-07
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多