提交合法的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. Win8.1下FreeImage.lib库的配置和简单使用(转)

    转自http://www.codeweblog.com/win8-1下freeimage-lib库的配置和简单使用/ 首先,你可以从这里获取FreeImage的完整库文件(访问密码 9a5e). 配置 ...

  2. typename

    typename关键字是C++在标准化过程中被引入的,目的在于向编译器说明template内的某个标识符是个类型. 如:template <typename T> class MyClas ...

  3. TCL:表格(xls)中写入数据

    intToChar.tcl # input a number : 1 to 32 , you will get a char A to Z #A-Z:1-32 proc intToChar {int} ...

  4. [Java基础]java中this和super

    一.this关键字 1.this概念 (参考:http://www.cnblogs.com/xdp-gacl/p/3636071.html)   this是一个引用,它指向自身的这个对象,它的内存分析 ...

  5. 使用netty实现的tcp通讯中如何实现同步返回

    在netty实现的tcp通讯中,一切都是异步操作,这提高了系统性能,但是,有时候client需要同步等待消息返回,如何实现呢?笔者已经实现,在此总结下重点要素 实现要点: 1.消息结构设计 消息头中需 ...

  6. 积累一点ctf需要掌握的常见脚本知识

    1.暴力破解压缩包. 2.利用像素点还原图片. from PIL import Image import re if __name__ == '__main__': x = 887 //将像素点个数进 ...

  7. Android--Intent传递对象

    Intent 传递对象通常有两种实现方式,Serializable 和 Parcelable: 一.Serializable:序列化,表示将一个对象转换成可存储或可传输的状态,序列化后的对象可以在网络 ...

  8. jsoup使用样式class抓取数据时空格的处理

    最近在研究用android和jsoup抓取小说数据,jsoup的使用可以参照http://www.open-open.com/jsoup/;在抓纵横中文网永生这本书的目录内容时碰到了问题, 永生的书简 ...

  9. 苹果全新 Mac OS X 系统开放下载

    在今天的发布会上,苹果除了发布多款硬件产品之外,还更新了Mac OS X Mavericks(小牛)系统,作为重大改变,这一Mac系统将从今天起开始免费升级. 升级后的Mavericks系统将进一步与 ...

  10. Twitter全局唯一ID生成算法

    测试:private static void TestIdWorker() { HashSet<long> set = new HashSet<long>(); IdWorke ...