CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请指点一下这个怪问题 怪 怪 怪

楼主abencatkm(阿笨猫)2004-08-03 08:54:29 在 .NET技术 / ASP.NET 提问

问题是这样的:  
      我在Webform上放一个TextBox,一个button,在textBox中输入任意的如:"<!4444>"     内容,一点button,它就会出错。  
      请问如何在客户端先验证   TextBox中的内容是否正确?     请指教 问题点数:100、回复次数:24Top

1 楼kenMoxi(蓝雨)回复于 2004-08-03 08:57:09 得分 10

可以使用自定义的验证控件,使用正规表达式~  
  Top

2 楼uffeng(呆呆)回复于 2004-08-03 08:59:16 得分 0

楼主的意思自定义错误   还是只要text   输入   如你所写   就出错Top

3 楼CtrlT( 我自由!我变坏! )回复于 2004-08-03 08:59:36 得分 0

 
    用js验证Top

4 楼Jasonchen82(梦回光辉岁月)回复于 2004-08-03 08:59:54 得分 0

同意楼上的。Top

5 楼abencatkm(阿笨猫)回复于 2004-08-03 09:00:50 得分 0

比如:输入内容  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <title>WebForm1</title>  
  <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
  <meta   name="CODE_LANGUAGE"   Content="C#">  
  <meta   name="vs_defaultClientScript"   content="JavaScript">  
  <script   language="javascript">  
  function   emoticon(theSmilie)  
    {  
  document.form.content.value   +=   theSmilie   +   '   ';  
  document.form.content.focus();  
                      }  
  </script>  
  </HEAD>  
   
  出现提示:  
  “/WebA”应用程序中的服务器错误。  
  --------------------------------------------------------------------------------  
   
  从客户端(Txt_memo="<!DOCTYPE   HTML   PUBLI...")中检测到有潜在危险的   Request.Form   值。    
  说明:   请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在   Page   指令或   配置节中设置   validateRequest=false   可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。    
   
  异常详细信息:   System.Web.HttpRequestValidationException:   从客户端(Txt_memo="<!DOCTYPE   HTML   PUBLI...")中检测到有潜在危险的   Request.Form   值。  
   
  源错误:    
   
  执行当前   Web   请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。      
   
  Top

6 楼zhanqiangz(闲云野鹤-Overriding)回复于 2004-08-03 09:02:16 得分 0

那要看你页面逻辑想着实现什么效果呢  
  是不是屏蔽非法字符啊  
  用正则表达式,regularexpressionvalidator。  
  或者用js在客户端写验证代码。Top

7 楼abencatkm(阿笨猫)回复于 2004-08-03 09:02:52 得分 0

请给出具体解决方案好吗,因为我是第一次学习做BS的东东     对js,asp等没有一点基础     谢谢了Top

8 楼adminyao(程序傻子)回复于 2004-08-03 09:03:16 得分 0

对, 用正则表达式,或者是在前台用JS写Top

9 楼sand1602(沙)回复于 2004-08-03 09:04:52 得分 10

在web.config中设置  
  <system.web>  
  <pages   validateRequest="false"/>  
  Top

10 楼abencatkm(阿笨猫)回复于 2004-08-03 09:04:58 得分 0

我是想把文本中的内容保存到sql     数据库中,可是以提交就出错,后来发现是什么方法都不写,只放2个控件   也是出错Top

11 楼sand1602(沙)回复于 2004-08-03 09:06:11 得分 0

这样可以关闭页面的默认检查,然后在后台再手工写验证代码。Top

12 楼bcqingteng(夜行老鼠)回复于 2004-08-03 09:08:04 得分 10

用JS验证吧,可以在Page_Load中给那个按钮加上验证代码。类似于Button.Attributes.Add("onclick","这放JS代码,或者调用已经存在的JS中函数")。Top

13 楼whxleem(feeling)回复于 2004-08-03 09:08:19 得分 0

你可以用。net提供的验证控件来验证数据的合理性,本身验证控件就会生成js脚本的。Top

14 楼sand1602(沙)回复于 2004-08-03 09:08:39 得分 10

或者在页面加上<%@   page   validateRequest=false   %>Top

15 楼sjc0(流浪者)回复于 2004-08-03 09:10:51 得分 50

private   string   html(string   str)  
  {  
  str=str.Replace("<","&lt;");//处理小于号  
  str=str.Replace(">","&gt;");//处理大于号  
  str=str.Replace("\n","<br>");//处理换行  
  str=str.Replace("'","‘");//单引号  
  str=str.Replace("\"","“");//双引号  
  return   str;  
  }Top

16 楼abencatkm(阿笨猫)回复于 2004-08-03 09:13:14 得分 0

用这个只是不验证罢了,可是还是不可以提交到数据库的  
   
  在web.config中设置  
  <system.web>  
  <pages   validateRequest="false"/>Top

17 楼realljx(抵制日货 功在千秋)回复于 2004-08-03 09:17:24 得分 10

<%@   page   validateRequest=false   %>  
  Top

18 楼abencatkm(阿笨猫)回复于 2004-08-03 09:18:27 得分 0

我实验了一下    
  1、页面加上<%@   page   validateRequest=false   %>  
  2、private   string   html(string   str)  
  {  
  str=str.Replace("<","&lt;");//处理小于号  
  str=str.Replace(">","&gt;");//处理大于号  
  str=str.Replace("\n","<br>");//处理换行  
  str=str.Replace("'","‘");//单引号  
  str=str.Replace("\"","“");//双引号  
  return   str;  
  }  
  是不出错误了。  
   
  *********请主要是那些特殊字符需要过滤呢   ??*******Top

19 楼abencatkm(阿笨猫)回复于 2004-08-03 09:20:19 得分 0

这个地方很不错   高手很多   回复速度很快   以后我要常来坐坐了Top

20 楼abencatkm(阿笨猫)回复于 2004-08-03 09:20:43 得分 0

请问主要是那些特殊字符需要过滤呢   ??Top

21 楼wnlovezxm(大垃圾人)回复于 2004-08-03 09:29:05 得分 0

在web.config中设置  
  <system.web>  
  <pages   validateRequest="false"/>  
  这样可以写进库里的!Top

22 楼abencatkm(阿笨猫)回复于 2004-08-03 09:29:11 得分 0

用这种方法如何   呢?  
   
  HttpServerUtility.HtmlEncode   方法  
   
  String   TestString   =   "This   is   a   <Test   String>.";  
  StringWriter   writer   =   new   StringWriter();  
  Server.HtmlEncode(TestString,   writer);  
  String   EncodedString   =   writer.ToString();  
   
  Top

23 楼abencatkm(阿笨猫)回复于 2004-08-03 09:33:18 得分 0

private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Txt_memo.Text   =html(Txt_memo.Text);  
  }  
  private   string   html(string   str)  
  {  
  StringWriter   writer   =   new   StringWriter();  
  Server.HtmlEncode(str,   writer);  
  str   =   writer.ToString();  
   
  /* str=str.Replace("<","&lt;");//处理小于号  
  str=str.Replace(">","&gt;");//处理大于号  
  str=str.Replace("\n","<br>");//处理换行  
  str=str.Replace("'","‘");//单引号  
  str=str.Replace("\"","“");//双引号*/  
  return   str;  
  }  
   
  private   void   Button2_Click(object   sender,   System.EventArgs   e)  
  {  
  String   TestString   =   "This   is   a   <Test   String>.";  
  StringWriter   writer   =   new   StringWriter();  
  Server.HtmlEncode(TestString,   writer);  
  String   EncodedString   =   writer.ToString();  
   
  }  
  Top

24 楼abencatkm(阿笨猫)回复于 2004-08-03 09:39:01 得分 0

这样可以了吧  
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Txt_memo.Text   =HtmlEncode(Txt_memo.Text);  
  }  
  private   string   HtmlEncode(string   str)  
  {     //转换  
  StringWriter   writer   =   new   StringWriter();  
  Server.HtmlEncode(str,   writer);  
  str   =   writer.ToString();  
  return   str;  
  }  
   
  private   string   HtmlDecode(string   str)  
  {     //还原  
  StringWriter   writer   =   new   StringWriter();  
  Server.HtmlDecode(str,   writer);  
  str   =   writer.ToString();  
  return   str;  
  }  
   
  private   void   Button2_Click(object   sender,   System.EventArgs   e)  
  {  
                Txt_memo.Text   =HtmlDecode(Txt_memo.Text);  
  }Top

相关问题

  • 请指点一下
  • 请高手指点一下!!
  • 请高手指点一下.
  • 请高手指点一下..
  • 请大虾指点一下
  • 一个奇怪的现象??请朋友们指点一下
  • 一个奇怪的现象??请朋友们指点一下
  • 一个奇怪的现象??请朋友们指点一下
  • 指点一下
  • 一个很奇怪的VC++编译问题,请大家来指点一下

关键词

  • 验证
  • 控件
  • 代码
  • 页面
  • 内容
  • js
  • stringwriter
  • writer
  • htmlencode
  • 大于号

得分解答快速导航

  • 帖主:abencatkm
  • kenMoxi
  • sand1602
  • bcqingteng
  • sand1602
  • sjc0
  • realljx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo