最近我遇到了一个面试问题。
您已使用.NET framework 3.5完成了一个ASP.NET应用程序 您计划将包含HTML代码的文本提交到应用程序中的页面 您需要确保可以成功提交HTML代码,而不会影响在Web服务器上运行的其他应用程序 你有什么选择?
在Web.Config中添加以下内容
<system.web>
<pages validateRequest="false"/>
</system.web>
在Machine.Config中添加以下内容
<system.web>
<pages validateRequest="false"/>
</system.web>
我猜正确的答案可能是(1)。只想确认SO专家的答案。请帮帮我。
答案 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将影响服务器上运行的所有应用程序。