快速业务通道

COM原理及应用----COM特性

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-05-23
集成开发环境中也可以生成。在集成开发环境中创建一个工程,并把MIDL生成的源代码文件的DEF文件加入到工程中,并在编译选项中加入REGISTER_PROXY_DLL,在连接选项中加入rpcrt4.lib、uuid.lib。

COM库能够提供代理管理器和存根管理器,并且MIDL又能够自动生成自定义接口的代理和存根源代码,但目前,COM库还不能在运行过程中根据接口的描述自动生成接口代理和接口存根来处理自定义接口的列集过程。

14、MIDL创建自定义接口代理/存根组件程序的过程

(1)编写接口的IDL文件;

(2)运行MIDL工具生成相关的源代码文件;

(3)编写DEF文件;

(4)编写MAK文件;

(5)编译连接得到接口/存根组件程序;

(6)运行regsvr32.exe注册组件程序。

17、COM的安全性

安全性不是COM的主要目的,但既然COM是一种平台独立的软件模型,而且提供了跨进程甚至跨网络的客户/服务器软件结构,则安全性是不可缺少的保护机制。建立一种适合各种操作系统的安全性机制是不可能的,所以COM规范也只是提供了安全性机制框架。在Windows平台上实现的COM版本基本上基于 Windows NT的鉴定服务(authentication service)机制。

18、Windows NT安全机制

Windows NT作为网络操作系统,具有完全的保护机制,系统的所有资源都是受保护的,这些资源包括文件、外设、进程、线程,甚至同步对象、共享内存、注册表中的键等等。所谓受保护是指这些资源与特定的访问权限联系在一起,当这些资源被访问时,操作系统要对权限进行验证,以便允许访问或者禁止访问。

19、RPC鉴定的5个层次

(1)无鉴定操作即正常的RPC调用;

(2)连接时进行鉴定;

(3)每一个接口调用时进行鉴定

(4)对每个请求进行鉴定,并对接收到的数据包进行完整性检验;

(5)进行所有的鉴定并对数据包加密。

20、COM提供了两种类型的安全性

激活安全性(activation security),不同于激发安全性(launch security),包括COM对象如何被安全地启动、客户如何与对象建立连接,以及如何保护公共的资源,比如全局运行对象表、系统注册表等。

调用安全性(call security),是指在已经建立连接的基础上,客户调用组件程序的安全保护问题。

21、激活安全性

SCM是COM库中负责找到并启动组件程序的组件。当客户向COM库请求创建新的COM对象或者连接已经运行的组件对象时,负责处理请求的正是SCM。因此,激活安全性也通过SCM实现。

激活安全性是进程一级的安全性,即进程中所有的对象和所有对象的成员函数共享的安全性,它分两种情况:静态安全性和动态安全性。当SCM接收到激活对象的请求时,它检查注册表中安全配置信息,以便满足合法用户的请求,这称为静态安全性检查;另一种情况是,在程序运行过程中设置进程的安全性,这称为动态安全性检查。

Windows提供的工具DCOMCNFG.EXE(在控制面板中)可以对组件的安全性进行设置。

22、调用安全性

调用安全性的实现方法之一是使用IClientDecurity接口,方法二是使用COM提供的API函数。IClientDecurity是接口代理选择实现的接口,它的三个主要成员函数:CopyProxy、QueryBlanket和SetBlanket。COM提供了几个API函数封装了接口 IClientDecurity的调用:CoQueryProxyBlanket、CoSetProxyBlanket和CoCopyProxy。

MIDL生成的接口代理对象实现了IClientDecurity接口,并且系统代理管理器也实现了IClientDecurity接口,所以并不需要自己实现IClientDecurity接口。

23、Win32线程和COM线程

Win32提供两种线程:UI线程(user-interface thread,也称为用户界面线程)和辅助线程(worker thread)

对应于Win32的两种线程,COM也有两种线程类型:套间线程(apartment thread)(对应于UI线程)和自由线程(free thread)(对应于辅助线程)。

COM线程特性是针对特定的COM

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号