APP下载

ActiveX在ASP编程中的应用及实现

2010-02-04李游

中小学电教 2010年11期
关键词:服务器端控件浏览器

☆李游

(宜宾市第一中学校,四川宜宾 644000)

ActiveX在ASP编程中的应用及实现

☆李游

(宜宾市第一中学校,四川宜宾 644000)

ActiveX控件(作为COM对象)的最初设计目标是成为一种可编程的软件组件,这样它可以装配到Windows应用程序中来快速形成容易设计的用户界面。这些组件可以编译成本地指令(native instruction)并可以自由调用目标操作系统中的Win32 API。当基于B/S网络编程开始变得重要起来之后,微软提供了<OBJECT>元素管理IE中网页的这些控件。ActiveX控件可以借助IE快速下载到用户机器上并执行它们的本地代码。不幸的是,IE没有控制这些代码执行的方法,因此ActiveX控件可以在当前登录用户的权限范围内毫无约束地调用Win32 API。所以,在IE在对使用有ActiveX控件的网页有严格要求,并在安全上限制运行ActiveX控件。

一、利用已经有的ActiveX控件编写WEB程序

学习过ASP的人一定会感受到ASP的强大功能,只用 Request、Response、Server、 Session 和 Application 5 内置对象就能完成我们多数的WEB程序设计,而加上侦测用户浏览器能力及用户环境的Browser Capabilities组件、提供建立动态广告板的Ad Rotator组件、协助管理、更新及建立网页连接功能的Content Linking组件、具有建立或存取服务器端文字文件能力的File Access组件及具有建立网页计数能力的Page Counter组件等基本组件已经能满足我们日常WEB设计的要求。但事实上ASP的功能还不止这样,ASP功能之所以强大,主要是它的扩充性。只要是利用OLE或是ActiveX所开发出来的组件,ASP皆可以使用。话虽如此,如果要编写一个ASP组件,虽然不是很困难,但由于国内这方面的资料较少,对于大多数的人而言也是一个相当大的考验。基于这个考虑,我们不如从互联网中去找一些来用。

一些我们经常使用到的:能在网页中实现E-mail发送的w3 JMail组件;图形控件Image Library,运用它你可以使用ASP程序可以动态的图形;文件上传组件LyfUpload等都是别人已经编写好的现成组件。在网上认真找一下能找到许多的组件,而且这些组件都包含有使用说明,并有一个或多个使用例程,一般很容易上手,在这里我们就不再介绍了。

二、利用VBScript和JavaScript里面包含的ActiveX控件编写WEB程序

VBScript和JavaScript是我们进行WEB编程时经常使用的两种客户端语言,里面本来有一个FileSystemObject能通过浏览器在服务器和客户机上进行新建、删除文件等操作,但出于安全方面的考虑,FileSystemObjec里面涉及的对象、函数、方法等被视为ActiveX控件一般下是不能直接使用的。如访问的网页上如包含有这类操作的话会出现根据客户浏览器安全设置的情况出现不同提示。

上面的WEB程序是在客户机上C盘根目录上建立一个testfile.txt当我们运行这个程序时,会出现以下警告对话框(如图1)。

图1

但有些时候我们的解需要在客户机上进行一些这方面的操作又该怎么解决呢?其实要解决这个问题也不难,只要在安全方面进行设置一下就行了!方法是:

(1) 打开浏览器->工具菜单->Internet选项进入Internet选项面板。

(2)点击->安全->可信站点->站点->取消需要该区域中所有站点的服务器证书(https)选项,以便能支持我们普通的http协议->在将该Web站点添加到区域中输入自己考试系统的网站(http://test.ybsyz.net)->最后点添加后返回到Internet选项面板完成可信站点的添加。

(3)点击自定义级别进入设置->将ActiveX控件和插件下面的所有选项设置为启用后点确定。

设置完成后,无论使用什么ActiveX都不会出现提示了,不过要注意,进行这个操作后对于 http:/test.ybsyz.net网站的安全防范为零,如果 http:/test.ybsyz.net愿意,可以删除你电脑上的任意文件。

三、编写自己用于客户端的特定ActiveX控件

基于客户端ActiveX控件的应用是有很多的,比如:我们经常在浏览器中看到的SWF文件原来是不能在IE观看的,而要看这种文件就必须安装Macromedia公司开发的Flash播放控件;而现在的许多语音聊天室也是使用ActiveX控件来实现语音的传送,这类要安装到客户自己电脑上的ActiveX控件又应该怎么写呢?

曾经我在开发一个考试系统时遇到一个问题:怎样将网上指定文件下载到客户机上。找了许多资料都没有发现现成的控件和函数供我们使用,经过大量的查询资料,最后通过VB6企业版来完成的,在新建工程时注意要选择ActiveX控件,在窗体中只使用到timer和Microsoft Internet Transfer Control 6.0两个部件 (如图2)。

现在将源程序呈上:

图2

在程序编写完成后,点击运行,会运行一个网页文件,注意查看这个网页文件的源程序,里面有以下内容:

这个网页程序里面的classid是我们过一会儿做网页时要使用到,将其保存起来。

最后在文件菜单中将其生成为OCX工程,取名为mydownfile.ocx,即完成了控件的编写。

为了让客户端能使用到这个控件,我们要将它复制到我们的WEB目录下,建立一个示例samp.htm文件来试一下!

最 后 在 任 意 一 台 客 户 浏 览 器 打 开 http://test.ybsyz.net/samp.htm就可以将文件下载了。现在只要通过ASP控制samp.htm这个网页的内容就可以随便下载文件到指定位置了。不过因为我们自己开发的ActiveX控件没有经过微软的安全认证,所以如果没有把 http://test.ybsyz.net设置为可信站点,并设置好相关安全属性,程序在运行里还是会出现提示,当然要解决这个问题就是直接将访问的这个站点设置为可信站点。

四、编写自己用于服务器端的特定ActiveX控件

自己编写用于服务器端的特定ActiveX控件一般是出于以下三方面的需要:一是需要的功能目前还不能通过ASP等程序来实现,这时我们就要使用到ActiveX控件来辅助完成;二是我们要求程序的执行效率很高,虽然ASP能完成这个任务,但它毕竟是解释型语言,执行效率很低,这时我们就要使用到ActiveX控件来辅助完成;三是ASP文件是以文本形式进行保存的,别人很容易获得源程序,而当我们开发的程序包含有很大的商业秘密就希望对程序进行加密,而加密最好的方法就是将程序关键部分作为ActiveX控件进行封装。

编写服务端ActiveX控件和编写客户端的特定ActiveX控件的方法差不多,而介绍怎样编写服务器端ActiveX控件的文章和资料也较多,在这里由于篇幅原因就不再介绍了。需要的朋友可以在网上查找这方面的资料。

五、结束语

本文全面介绍了ActiveX在ASP编程中的应用及实现,并通过一个完整的开发实例介绍了怎样编写用于ASP的ActiveX控件。

[1]林金霖.ASP实务经典.北京:中国铁道出版社.

[2]William Martiner 著.Visual Baasic Programmer’s Guide to Web Development.北京:电子工业出版社.

[3]山风工作室.实作ActiveX组件 for ASP.北京:中国铁道出版社.

[4]Matt J.Crouc(美).怎样用 ASP 和 COM 进行 Web 编程.北京:人民邮电出版社.

于翼楠]

猜你喜欢

服务器端控件浏览器
基于.net的用户定义验证控件的应用分析
Linux环境下基于Socket的数据传输软件设计
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
关于.net控件数组的探讨
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
浏览器