合法提交Html标签(2)
提交合法的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)的更多相关文章
- 合法提交Html标签 Page指令
3.2.1 提交合法的HTML标签(1) 有时候我们需要让我们提交的文本展示出来的效果非常美观,通常会对服务器提交一些HTML标签来控制文本或内容的样式. HTML标签可能包含了很多不安全的因素,所以 ...
- struts2防止重复提交的标签
struts2 token 使用说明 --------------------------------------------------------------------------------- ...
- 对Jsp提交input标签空格和回车的处理
今天做增加的时候发现一个问题,在js中去掉空格的时候如果这么写 var stage_name = document.getElementById("stage_name").val ...
- 让ASPX页面可以提交html标签代码的配置
1:打开web.config文件,在system.web节点里,添加<httpRuntime requestValidationMode="2.0" /> 2:在asp ...
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...
- HTML标签大全
HTML标签解释大全 一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD). 标签:a 说明:标明超链接的起始或目的位置. 标签:acronym 说明:标 ...
- HTML标签解释大全
一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD). 标签:a 说明:标明超链接的起始或目的位置. 标签:acronym 说明:标明缩写词. ...
- 2.HTML标签
<a> 链接标签 1) <a href=“#”>这是个链接</a> 表示空链接 2) 未访问过的链接 显示蓝色字体并带下划线;访问过的链接 显示紫色 ...
随机推荐
- Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解
在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用 ...
- python中zipfile文件名编码的问题
在python中编程导入压缩包,利用zipfile包,从zipinfo读取文件名总是出错,创建的文件名是乱码,写入pgsql更是出错. 但在ubuntu下测试却正常,在windows下测试总是失败. ...
- VMware克隆虚拟机,克隆机网卡启动不了解决方案
Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interfac ...
- Mysql --分区表的管理与维护
改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了.和创建分区表时的create table语句很像 创建表 CREATE TABLE trb3 ...
- requirejs+angularjs搭建SPA页面应用
AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核 ...
- javascript基础知识-函数
1.javascript中函数有两种定义方式: 函数语句定义和表达式定义 //函数有定义 function test(){ console.log("This is a function&q ...
- debian下使用gitosis+gitweb搭建SSH认证的git服务器
搭建完成Git服务器后,需要使用两台机器进行测试,一台机器作为服务器端server,一台服务器作为客户端client.整个系统,需要三个计算机账户,这里假设server端的账户名为git,client ...
- Ubuntu下eclipse开发hadoop应用程序环境配置
第一步:下载eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz 注意:如果电脑是64位,就下载linux下的64位eclipse,不要下载32位的eclips ...
- PADSPCB权威指南-第三章 预处理(部分)(原创)
PADSPCB权威指南-第三章(部分)豆丁地址:http://www.docin.com/p-707132066.html
- android camera 自定义开发
1.检测是否有摄像头 /** Check if this device has a camera */ private boolean checkCameraHardware(Context cont ...