允许发布Html内容

时间:2011-08-11 07:50:03

标签: asp.net

最近我遇到了一个面试问题。

您已使用.NET framework 3.5完成了一个ASP.NET应用程序 您计划将包含HTML代码的文本提交到应用程序中的页面 您需要确保可以成功提交HTML代码,而不会影响在Web服务器上运行的其他应用程序 你有什么选择?

  1. 在Web.Config中添加以下内容

    <system.web>
      <pages validateRequest="false"/>
    </system.web>
    
  2. 在Machine.Config中添加以下内容

    <system.web>
      <pages validateRequest="false"/>
    </system.web>
    
  3. 我猜正确的答案可能是(1)。只想确认SO专家的答案。请帮帮我。

4 个答案:

答案 0 :(得分:2)

您还可以使用

修饰单一操作方法
    [ValidateInput(false)]
    public ActionResult Index()
    {
        return View();
    }

这样可以提高安全性,因为你拥有 在请求验证发生时进行控制。

答案 1 :(得分:1)

1)是正确的。通过将代码放在machine.config中,您将影响整个机器,因为这是全局设置。

答案 2 :(得分:1)

  

您计划将包含HTML代码的文本提交到页面中   应用

由于它只是“一个页面”,单独禁用该页面的验证检查会更好,而不是整个应用程序(web.config),更不用说所有应用程序上的服务器(machine.config)。

为此,请在@Page指令上设置ValidateRequest =“false”。

答案 3 :(得分:0)

  

不影响在Web服务器上运行的其他应用程序

这是关键,web.config只会影响一个应用程序。 Wheras machine.config将影响服务器上运行的所有应用程序。