“检测到有潜在危险的request.form值”

时间:2015-12-15 12:46:05

标签: c# .net

用户在尝试登录时收到“检测到有潜在危险的request.form值”错误消息。我在logon.aspx页面中设置了validateRequest =“false”以及以下“位置”中的web.config中:

<location path="~/Account/Logon.aspx">
    <system.web>
      <pages validateRequest="false" />
      <httpRuntime requestValidationMode="2.0" />
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>

用户仍然收到错误消息。我问他在密码中有什么特殊字符,他有“&amp;”,“#”和“(”,没有一个应该产生这个错误(我有#和*)。还有什么我可以试试的?

几乎所有解决此问题的建议,包括本网站的建议,都建议使用“validaterequest = false”,这似乎没什么帮助。

1 个答案:

答案 0 :(得分:1)

解决方案的两个部分。首先添加到控制器方法ValidateInputAttribute:

[ValidateInput(false)]

第二部分更难。您应该在代码中手动验证值。确保用户输入中没有SQL注入。

<强>更新 对于ASP.NET Web窗体,请在页面中使用ValidateRequest标记,如下例所示:

<%@ Page language="c#" Codebehind="LoginForm.aspx.cs" 
ValidateRequest="false" AutoEventWireup="false" 
Inherits="Junk.WebForm1" %>