我刚刚在Visual Studio 2012(C#)中创建了一个新的MVC4“Internet”应用程序。
我转到默认/帐户/登录页面并输入<b />
作为用户名。
服务器因此错误而崩溃:
从客户端检测到潜在危险的Request.Form值(UserName =“
”)。
我之前见过它并且之前已经摆脱它,所以我可以轻松地再做一次。我将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 />
时,我仍然会收到完全相同的错误。
怎么了?
答案 0 :(得分: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) {
}