问 题
关于:通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证,请问PAGE指令在哪里?配置节又在哪里?
我在文本框内输入了"<input type=text>"出现了上述提示“/WebApplication1”应用程序中的服务器错误。
从客户端(TextBox1="<INPUT TYPE=TEXT>")中检测到有潜在危险的 Request.Form 值。 说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 异常详细信息: System.Web.HttpRequestValidationException: 从客户端(TextBox1="<INPUT TYPE=TEXT>")中检测到有潜在危险的 Request.Form 值。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪: [HttpRequestValidationException (0x80004005): 从客户端(TextBox1="<INPUT TYPE=TEXT>")中检测到有潜在危险的 Request.Form 值。] System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) System.Web.HttpRequest.get_Form() +113 System.Web.UI.Page.GetCollectionBasedOnMethod() System.Web.UI.Page.DeterminePostBackMode() System.Web.UI.Page.ProcessRequestMain() System.Web.UI.Page.ProcessRequest() System.Web.UI.Page.ProcessRequest(HttpContext context) System.Web.CallHandlerExecutionStep.System. Web.HttpApplication+IExecutionStep.Execute() System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 回 答:
直接转到 WebForm1.aspx 的 HTML 界面,里面第一行是黄色的,在 <% %> 里面加入validateRequest=false
微软的相关文章参考如下: 参考地址:http://support.microsoft.com/default.aspx?scid=kb;en-us;821343&Product=aspnet
关于设置节的参考如下:.NET Framework General Reference
<pages> Element
Identifies page-specific configuration settings. The <pages> section can be declared at the machine, site, application, and subdirectory levels. <configuration> <system.web> <pages>
<pages buffer="true|false" enableSessionState="true|false|ReadOnly" enableViewState="true|false" enableViewStateMac="true|false" autoEventWireup="true|false" smartNavigation="true|false" pageBaseType="typename, assembly" userControlBaseType="typename" validateRequest="true|False"/> |