Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET请求验证和服务器端验证_Asp.net_Validation - Fatal编程技术网

ASP.NET请求验证和服务器端验证

ASP.NET请求验证和服务器端验证,asp.net,validation,Asp.net,Validation,我混淆了ASP.NET请求验证和服务器端验证。 如果我们设置ValidateRequest=“false”,如下所示 <%@ Language="C#" ValidateRequest="false" %> <html> <script runat="server"> void btnSubmit_Click(Object sender, EventArgs e) { // If ValidateRequest is false,

我混淆了ASP.NET请求验证和服务器端验证。 如果我们设置ValidateRequest=“false”,如下所示

<%@ Language="C#" ValidateRequest="false" %>
<html>
  <script runat="server">
   void btnSubmit_Click(Object sender, EventArgs e)
   {
      // If ValidateRequest is false, then 'hello' is displayed
      // If ValidateRequest is true, then ASP.NET returns an exception
      Response.Write(txtString.Text);
   }
  </script>
<body>
  <form id="form1" runat="server">
    <asp:TextBox id="txtString" runat="server" 
             Text="<script>alert('hello');</script>" />
    <asp:Button id="btnSubmit" runat="server" OnClick="btnSubmit_Click" 
             Text="Submit" />
  </form>
</body>
</html>

void btnsupmit\u单击(对象发送者,事件参数e)
{
//如果ValidateRequest为false,则显示“hello”
//如果ValidateRequest为true,则ASP.NET将返回异常
Write(txtString.Text);
}
那么我们可以使用服务器端验证,比如RequiredFieldValidator控件吗

它们是不同的东西吗?但它们都有关键词


谢谢你的解释。

是的,它们是不同的

ValidateRequest
会引发错误,如果任何提交的表单字段值包含“危险”值,例如您在其中的脚本标记,则会中止请求,以防止脚本注入攻击

验证程序控件(如
RequiredFieldValidator
)在失败时不会停止页面处理。它们用于帮助您处理规则,通常与保护服务器或应用程序免受攻击无关