如何在aspx </value>中获取文本框的值,如“<value>”

时间:2010-08-26 22:49:19

标签: asp.net

我有一个带有按钮和文本框的页面,当文本框中的输入“&lt; string&gt;”然后我按下按钮时出现此错误:一个有潜在危险的请求。从客户端检测到表单值(TextBox1 =“”&lt; string&gt;“”)。

3 个答案:

答案 0 :(得分:1)

您需要告诉ASP不要验证页面上的表单值:

<%@ Page  ... ValidateRequest="false"%>

这可以消除您的错误,但在后端您需要保护自己免受恶意输入。将所有<>个字符替换为编码值,这样就不会让自己受到XSS攻击。

答案 1 :(得分:1)

因为你正在传递“&lt;”以及“&gt;”,其中可能包含可能的恶意数据。您需要通过以下任一方式关闭页面验证:

设置页面声明:

<%@ Page Language="C#" ValidateRequest="false" %>

或者在web.config中:

<system.web>
  <pages validateRequest="false" />
</system.web>

如果你这样做,你需要严格消毒输入!您可以通过在服务器端对输入进行编码来完成此操作:

Server.HtmlEncode(TextBox1.Text)

答案 2 :(得分:1)

这是ASP.NET的一项安全功能,可以防止用户提交脚本块等潜在危险的代码。

您可以通过将Page指令的validateRequest属性设置为false

来禁用此功能
 <%@ Page validateRequest="false" %>

或在web.config中禁用它:

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

但要小心!正如我所说,这是一个安全功能!

您可以在此处详细了解:http://www.asp.net/learn/whitepapers/request-validation