我有兴趣确定验证服务器端验证是否按预期执行的方法,但需要绕过客户端验证正在使用ASP.NET验证控件完成。为了测试这一点,我尝试过使用Firefox的表单Poster插件,它允许我获取/修改页面内容并发布它,但.NET框架将提交解释为有害并且抛出了应用程序错误(“潜在的危险的Request.Form值从客户端检测到“)。如何绕过ASP.NET客户端验证来验证服务器端验证
我创建了一个包含WebBrowser控件的WinForm,我可以操作网页的内容并调用按钮单击,但我有兴趣了解如何允许使用无效输入值进行回发。我不想假设服务器端验证工作正常(即使我在服务器上检查是否在回发页面上检查Page.IsValid)。任何建议,将不胜感激。
这在提交的WebBrowseer控制Web表单和预期的客户端验证火灾: extendedWebBrowser1.Document.GetElementById(formButtonName).InvokeMember("click");
这是我是如何操作的一些页面内容(这只是阻止提交): mshtml.IHTMLDocument2 doc = extendedWebBrowser1.Document.DomDocument as mshtml.IHTMLDocument2; string html = doc.body.innerHTML; html.Replace("Page_ValidationActive = false", "Page_ValidationActive = true"); doc.body.innerHTML = html.ToString(); extendedWebBrowser1.Document.GetElementById(formButtonName).InvokeMember("click");
您确定'EnableEventValidation'效果表单字段验证吗?技术文档如此解释这个属性:“当EnableEventValidation属性设置为true时,ASP.NET验证控件事件源于该控件呈现的用户界面。控件在渲染过程中注册其事件,然后验证事件在回发或回调处理期间“。 – 2011-03-01 21:54:37