提交合法的HTML标签(2)

上面用到了一个Inherits属性,它用来设置页面与后台代码中相关联的类。我们打开CodeFile属性所指的文件,会找到该属性所指的类名。但是这里仅仅存放的是用户定义的事件处理程序,并没有任何服务器端对象的声明。

不过这里我们发现该类是一个partial(部分)类,这说明系统还隐藏着一个文件,存放着该类的另一部分。而在这个隐藏的文件里有着所有服务器端控件的声明和属性设置代码。这两个部分类已经完整地声明了一个继承自Page类的类。

作为页面,因为其最终也要被系统解释成一个类,所以这里页面和后台代码类的关系是继承关系。所以,这里Inherits属性设置的是被继承的类。

2. 实例描述

作者闲得无聊,自己写了一个简单HTML编辑控件。

效果还不错,可就是用在ASP.NET程序中提交数据的时候老是说有潜在的危险。检查代码并没有发现什么危险,只是提交的内容中有一些换行标签“<br>”。这是想让输入的内容在展示的时候换个行而已,却一直通不过。

很无奈!不过,查过资料才知道,在这个需要提交信息的页面的@Page指令中简单地设置一下就好了。

这里我们为了更直观地展示效果,就直接在文本框中输入HTML文本进行提交,而不再使用HTML编辑控件了。

3. 实例应用

【例3-1】我想提交合法的HTML标签。

(1) 我们先新建一个项目,新建一个Web窗体页面。

(2) 在前台页面拖入一个文本框,ID属性设置为txtContent。

(3) 在前台页面拖入一个命令按钮,ID属性设置为btnSubmit,Text属性设置为Submit。

(4) 换行,在页面中拖入一个标签控件,ID属性设置为lblShow。

(5) 在页面设计视图中双击命令按钮btnSubmit,添加单击事件。

页面代码如下:

 

(6) 用户在单击命令按钮的时候,文本框里的值应当展示到标签里,这里我们修改命令按钮btnSubmit的事件处理程序,代码如下:

 

(7) 最后当然还要设置一下页面上的@Page指令了,我们需要添加一个ValidateRequest属性,并设置其值为false。修改后的@Page指令代码如下:

 

4. 运行结果

保存文件,运行项目,访问该页面。

我们先在文本框中输入“Hello!<br>你好!”字符串,然后单击Submit按钮,结果如图3-1所示。

可以看到在标签展示出来的结果中“Hello!”和“你好!”之间已经换了一行。

不过,至此我们并没有看到修改该属性的好处,我们删掉@Page指令中对ValidateRequest属性的设置,然后再输入“Hello!<br>你好!”,单击Submit按钮,结果如图3-2所示。

 
图3-1 运行结果
 
图3-2 删除ValidateRequest属性后的运行结果

可以看到,出错了。检测到有潜在危险的Request.Form值。

5. 实例分析

源码解析: 本实例创建一个TextBox控件、一个Button控件和一个Label控件,在单击Button控件提交表单的时候,将TextBox控件里的值使用Label控件展示出来。

在服务器提交过程中,系统自动验证请求的安全性,如果检查到有HTML标签,则系统会认为该次请求是不安全的。我们需要关闭本页面对请求数据的验证,设置本页面@Page指令的ValidateRequest属性值为false。

合法提交Html标签(2)的更多相关文章

  1. 合法提交Html标签 Page指令

    3.2.1 提交合法的HTML标签(1) 有时候我们需要让我们提交的文本展示出来的效果非常美观,通常会对服务器提交一些HTML标签来控制文本或内容的样式. HTML标签可能包含了很多不安全的因素,所以 ...

  2. struts2防止重复提交的标签

    struts2 token 使用说明 --------------------------------------------------------------------------------- ...

  3. 对Jsp提交input标签空格和回车的处理

    今天做增加的时候发现一个问题,在js中去掉空格的时候如果这么写 var stage_name = document.getElementById("stage_name").val ...

  4. 让ASPX页面可以提交html标签代码的配置

    1:打开web.config文件,在system.web节点里,添加<httpRuntime requestValidationMode="2.0" /> 2:在asp ...

  5. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  6. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  7. HTML标签大全

    HTML标签解释大全 一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD). 标签:a 说明:标明超链接的起始或目的位置. 标签:acronym 说明:标 ...

  8. HTML标签解释大全

      一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD).   标签:a 说明:标明超链接的起始或目的位置.   标签:acronym 说明:标明缩写词. ...

  9. 2.HTML标签

       <a>      链接标签 1) <a href=“#”>这是个链接</a> 表示空链接 2) 未访问过的链接 显示蓝色字体并带下划线;访问过的链接 显示紫色 ...

随机推荐

  1. flashftp连接虚拟机centos报错的解决方法

    flashftp连接虚拟机centos报错,一般情况可能是因为端口(22)的权限没有开放 先在centos中检查并开放22端口,执行:iptables -I INPUT -p tcp --dport ...

  2. 【Visual Lisp】图元选择集专题

    图元选择集专题;;★★★01.选择集操作★★★(setq ss (ssadd));;创建一个空选择集(ssadd (car(entsel)) ss);;将点取的图元添加到ss选择集中,可以不用setq ...

  3. android 中View的优化

    在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候, ...

  4. c# WebBrower 与 HttpRequest配合 抓取数据

    今天研究一个功能,发现一个问题. 通过webbrower模拟用户自动登录可以完成,并且可以取到相对应的页面内容. 但是如果页面中通过ajax,动态加载的内容,这种方式是取不到的,于是用到了httpRe ...

  5. C++函数返回局部指针变量

    遇到过好几次关于函数返回指针变量问题,有时候是可以的,有时候是不可以的,然后就混乱了.今天研究了下,结果发现原来和内存分配有关. 用下面的例子分析下吧: char * test() { char a[ ...

  6. hdu 4982 Goffi and Squary Partition

    Goffi and Squary Partition Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Subm ...

  7. PHP 表单验证

    1. 验证文本框是否有内容且不能为空 <?php if (! (filter_has_var(INPUT_POST, 'flavor') && (strlen(filter_in ...

  8. shell 知识

    解压 tar.bz2文件 bunzip2 linux-2.6.13.tar.bz2 | tar xvf -

  9. 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

    分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前 ...

  10. 分享我开发的网络电话Android手机APP正式版,图文详解及下载

    分享我开发的网络电话Android手机APP正式版,图文详解及下载 分享我开发的网络电话Android手机APP正式版 实时语音通讯,可广域网实时通讯,音质清晰流畅! 安装之后的运行效果: 第一次安装 ...