合法提交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) 未访问过的链接 显示蓝色字体并带下划线;访问过的链接 显示紫色 ...
随机推荐
- LoopbackJS 生成对应 Oracle 视图的model
StrongLoop Arc 工具中的discover model 目前只能discover 表, Oracle数据库中的视图经测试并不能显示在列表中. 无奈之下,暂时只能采取替代方案. 解决方法: ...
- C语言小练习三
题目要求: 定义一个二维数组保存 10个学生的5门课成绩,分别用函数实现:(1)input():输入每个学生的成绩:(2)output():输出每个学生的成绩:(3)aver_stu():计算并输出每 ...
- iOS 清除web cookies
NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; ...
- 响应式web设计之CSS3 Media Queries
开始研究响应式web设计,CSS3 Media Queries是入门. Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表.换句话说,其允许我们在不改变 ...
- android 中IntentService的作用及使用
IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service一样,同 ...
- android ontouch事件分发机制
最近开发一个项目中,banner图左右切换和下拉刷新手势有冲突,为此去研究了事件分发,网上资料一大抄,有些讲的不对有些讲的不全,结合了网上一些博文以及源码总结如下 一个完整的触摸事件包含down,m ...
- erlang学习笔记(文件操作)
参考这里和这里了解到的文件操作的模块有很多:kernel下有:file,stdlib下有:filelib,filename,file_sorter.(具体查看官方文档)
- [Xpand] Error 1 Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
原因是用的vs2015 默认用了c#6 ,但是在没安装.net 4.6 环境下编译失败. 解决办法很简单,修改 6 为 5 做降级就可以了. 1.nuget install DotNetCompile ...
- "+" 是怎样连接字符串的?
关于“+”运算符对字符串的连接,不同的平台在实现上可能会略有不同. 1. Oracle JDK1.7 当使用“+”对字符串进行连接时,会创建一个临时的StringBuilder对象,该对象调用appe ...
- Dojo Data Store——统一数据访问接口
原文地址:http://www.infoq.com/cn/articles/wq-dojo-data-store 无论在传统的桌面应用还是在主流的互联网应用中,数据始终占据着软件应用中的核心地位.当下 ...