前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >validateRequest=false 可以禁用请求验证[通俗易懂]

validateRequest=false 可以禁用请求验证[通俗易懂]

作者头像
全栈程序员站长
发布2022-06-28 16:10:51
5680
发布2022-06-28 16:10:51
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

参看了MVP的利用WebClient和WebRequest类获得网页源代码于是想自己动手写点,当然是参考其的办法啦。

我这次下载了visual web developer 2005 express

按照上面的文章编写了代码,

我的btn函数如下

string urlPage = “”; urlPage = UrlText.Text; WebRequest request = WebRequest.Create(urlPage); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text =sr.ReadToEnd(); resStream.Close(); sr.Close();

但是一debug运行发现出现了一下错误

A potentially dangerous Request.Form value was detected from the client

Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ContentHtml=”<html> <head> <met…”).

仔细找了下解决方法和问题的原因原来是validaterequest的问题,以下是网络的参考连接,写的很详细,非常好呵呵

http://access911.net/index.asp?board=4&recordid=71FAB51E15DCE7F3

http://support.microsoft.com/default.aspx?scid=kb;en-us;821343&Product=aspnet

按照上面的说法解决方案又三种,

1.静止页面的validateRequest

<%@ Page validateRequest=”false” %>

2.设置web.config

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

3.我个人认为是最好的,就是采用Server.HtmlEncode这个方法

我改动如下

string urlPage = “”; urlPage = UrlText.Text; WebRequest request = WebRequest.Create(urlPage); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text = Server.HtmlEncode(sr.ReadToEnd()); resStream.Close(); sr.Close();

ok运行一下,搞定。不错不错

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132814.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档