0

我刚刚在 Visual Studio 2012 (C#) 中创建了一个新的 MVC4“Internet”应用程序。

我去了默认的 /Account/Login 页面并输入<b />了用户名。

服务器因以下错误而崩溃:

从客户端 (UserName="
") 检测到具有潜在危险的 Request.Form 值。

我以前见过它并且以前摆脱它,所以我可以轻松地再做一次。我将Web.config更改为如下所示:

<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" /><!-- Look here -->
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<pages validateRequest="false"><!-- Look here -->
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />
  </namespaces>
</pages>
</system.web>

我清理了解决方案并进行了重建,但当我再次尝试时,我仍然得到完全相同的错误<br />

怎么了?

4

1 回答 1

1

修改 Web.config 文件是禁用 Web 窗体中的设置的方法。

在 MVC 中,您可以将该ValidateInput属性应用于您的控制器方法。

<HttpPost>
<ValidateInput(False)>
Public Function ActionName(model As Object) As ActionResult

End Function

或者,如果您更喜欢 C#

[HttpPost]
[ValidateInput(false)]
ActionResult ActionName(Object model) {

}
于 2013-11-13T04:02:10.770 回答