问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ASP.NET中的CustomValidator验证控件失效。

发布网友 发布时间:2022-05-19 14:32

我来回答

4个回答

懂视网 时间:2022-05-19 18:53

ASP.NET请求验证功能为我们提供应用程序的安全保证,避免站点受到XSS跨站脚本攻击。但在有些时候,比如我们需要使用Ckeditor等在线文本编辑器让用户输入一些HTML文本,在ASP.NET 2.0框架下,通过在web.config中设置validateRequest="false"。或者在MVC中,我们可以通过在Controller或者Action上设置[ValidateRequest(false)]这个特性来达到禁用的目的。但是在ASP.NET 4.0框架下,你会发现,即使你这样做,仍然会提示你这样的一个异常“A potentially dangerous Request.Form value was detected from the client”。这是怎么回事呢?

原来是asp.net4.0应用程序生命周期发生了变化,在之前的ASP.NET版本中,请求验证是默认启用的,但是它只对页面请求有效(请求.aspx页面),并且也只是在页面被请求时验证。但是在ASP.NET 4.0中,请求验证功能被提前到IHttpHandler.BeginRequest这个方法被请求之前,这也就意味着所有进入ASP.NET请求通道的所有的HTTP请求都将会被进行请求内容合法性的验证,包括有的自定义HttpHandler,WebService请求,甚至于利用自定义Http Module进行自定义请求处理程序。

请求验证处理被提前的后果就是导致我们在页面,或者Controller中设置ValidateRequest=false,将会失效,无法阻止程序不去验证请求的输入内容了。因为这样做后,验证器无法得到请求的页面是否禁用了验证请求,因为还没有实例化HttpHandler。并且在ASP.NET4.0中,并没有提供给我一个地方去禁用这个验证功能。但是出于兼容性的考虑,ASP.NET允许我们通过在web.config中配置使用ASP.NET 2.0的请求验证行为:<httpRuntime requestValidationMode=”2.0″ />,这样就解决了。

热心网友 时间:2022-05-19 16:01

参考MSDN:
Page.IsValid 属性值 如果页验证成功,则为 true;否则为 false。

备注
若要使此属性返回 true,当前验证组中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.NET 服务器控件的 OnServerClick 事件处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。这些服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 类。

如果强制使用 Validate 方法对验证组进行验证,那么指定验证组中的所有验证控件也必须都验证成功。

下面的代码示例演示如何使用 IsValid 属性设置条件语句。如果该属性返回 true,则 lblOutput 控件的 Text 属性被设置为“Page is valid!”。否则,它被设置为“Some of the required fields are empty.”。

C#代码:
void ValidateBtn_Click(Object Sender, EventArgs E) {
if (Page.IsValid == true) {
lblOutput.Text = "Page is Valid!";
}
else {
lblOutput.Text = "Some of the required fields are empty.";
}
}

热心网友 时间:2022-05-19 17:19

你的代码看不出有什么问题,因为只有server端验证,所以在提交时需要在server端代码中检查Page.IsValid,否则代码等于不起作用。追问能具体说说嘛?判断Page.IsValid是什么意思?

追答楼下的说明和示例代码已经很清楚了,不再赘述。

热心网友 时间:2022-05-19 18:54

在load事件中加一个if(!IsPostBack){}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我在电脑上面下的电影在手机上面不显示? 为什么视频在手机里放不出来在电脑里放得出来? 求问bb霜什么牌‍子‍好 BB霜哪个牌子的比较好啊? 我用很多BB霜都过敏脱皮,该用哪个牌子的才能不过敏?拜托了各位 谢谢... 没有去继续教育会计证会不会被吊销? 会计证连续几年未继续教育会被吊销 我想请问,能不能从视频里抓出一段声音,然后保存,变成手机铃声的那种格式... 高中地理知识如何描述地貌特征 中国地理第一讲:自然地理之河流 非诚勿扰X女生牵手成功了吗 非诚勿扰X女生真实照片素颜照 求原图谢谢,只要高清原图图片,没有的请勿扰! 勿扰模式开启后 怎么没有图片&#xF31B;显示 有非诚勿扰张闻的照片吗 麻烦大家把非诚勿扰陈晨的照片发过来? 《勿扰》40岁那笛为何在照片中回避其胸部,是她小胸自卑吗? 这图是非诚勿扰哪一期的? 想找高手帮画出图片上的请即打扫和勿扰等等的图片,用cad画的那种 非诚勿扰万丞图片! 手机的勿扰模式图标什么样子 网络和Internet间出现红叉,出现错误码651,试过网络共享本地连接配置但 cad文件打开什么都没有,原文件确定有内容而且都是好的,试了好几个文件打开都是空白,怎么解决? cad打开两个文件第一个变空白 黄金煎饺的做法? 好吃的“锅贴”怎么做 如何做好吃的黄金锅贴? 《我的目标》300字大学作文 宜人贷人工客服 《我的2016目标》300字作文 我的目标,我的阻力。(写一篇文章,300字) 我需要类似下图的高清图片,人物必须是女生,要附带伤感,不要全身图,非诚勿扰 求一张能和这个做情侣头像的图片,采用后有重赏,混子勿扰情侣头像 谁还有这个老版本的QQ头像,要大图高清的,马赛克的勿扰!谢谢 非诚勿扰静静胖子的图片谁有? 常驻缅甸仰光的外派人员初到仰光生活上有什么需要注意的地方?缅币和人民币在哪里兑换比较划算? 北京华语视听商贸有限公司怎么样? 我在云南 挨着缅甸 这么廉价劳动力很多 想用这边的优势 做点什么 有哪位给点建议 京城最大的组合音响店地址 劳务输入公司注册需要什么资质,记得是劳务输入,例如输入越南,缅甸 一壹传媒集团有限公司怎么样? 去劳务派遣公司办理出国劳务需交纳的正规费用 我有一个朋友是缅甸的她来中国三四年了什么证件都没有可以在中国待多久? 中国有外派缅甸中文导游吗? asp.net验证控件不起作用 北京恩家壹传媒科技有限公司怎么样? 银行可以直接扣担保人的钱吗 银行有权跨行划扣欠款吗 借款担保人未经法院裁决定性能否直接从银行扣款强制执行? 我老公帮朋友贷款,我也签字的,朋友如果还不了了,贷款银行会从我的其他的银行账号上扣款吗? 借款人到期不还钱,银行不通过法院可以直扣款吗?