最近在学习COM的过程中发现在远程调用COM组件时总要在客户端也要注册组件,并且客户端的用户名要和服务器一样,DCOMCNFG也要使用交互用户,非常不好用,
在网上查发现大多数网友也是这样做的,但在看了MSDN发现CocreateInstanceEx的第三个参数是一个COSERVERINFO 类型的结构体,它还包括了一个COAUTHINFO的结构体,再查看COAUTHINFO的定义发现其中定义了很多和权限有关的东西,是否能通过设置此结构实现远程调用COM组件呢????
在网上查发现大多数网友也是这样做的,但在看了MSDN发现CocreateInstanceEx的第三个参数是一个COSERVERINFO 类型的结构体,它还包括了一个COAUTHINFO的结构体,再查看COAUTHINFO的定义发现其中定义了很多和权限有关的东西,是否能通过设置此结构实现远程调用COM组件呢????
解决方案 »
- VC6 下调试 run to cursor 为什么不生效
- 请问如何用最简单的方法建立个sock的连接
- 关于模拟软件的设计思路问题?考核是否掌握某个软件的操作技能。
- 怎么将模拟键盘事件不占用键盘资源??
- 你敢把“SB”字样贴在车上满街跑吗?有人就敢,而且车上还堆满钱...
- 关于生成新的进程的问题
- 关于for循环 我用cpen画笔作了一个类 用for循环 调用这个类 以实现图片的动态效果
- 将指针作为函数参数,如何让指针指向的地址的值改变后,把值传回来
- 几个函数,请大家给点提示
- 关于MessageBox()函数的用法?
- Window环境下如何判断一个文件是否正在被读或写,不胜感激!!!
- 视图(VIEW)和控件 EDIT BOX 有什么区别?
- 微软全球技术中心 VC技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
前几天才升的啊
>>件
这句话不准确。如果你使用先绑定 (early binding),那么客户端需要注册proxy/stub dll (或者tlb文件)。通常tlb文件是作为资源文件打包在组件DLL中,所以给你的印象好像在客户端也需要注册组件,实际上造成不必要的发布。如果你是通过使用IDispatch进行纯粹后绑定(late binding),那么并不需要在客户端注册什么,因为关于IDispatch,IClassFactory,IUnknown等interface的tlb在大多数支持DCOM的机器上已经预注册了。>>,并且客户端的用户名要和服务器一样,DCOMCNFG也要使用交互用户,非
>>常不好用,
这是因为你的客户端和服务器不在同一个Windows安全domain/groups中.因为DCOM的安全性建立在RPC的安全模型上,而RPC的安全模型使用Windows的安全模型上。不管你使用什么方法,DCOM server一定要能验证客户端传来的账户信息。我们推荐使用DCOM的系统建立在同一个Domain中。试想在一个安全文件系统(比如NTFS) 中如何共享文件给不在同一个trust domain机器用户?>>看了MSDN发现CocreateInstanceEx的第三个参数是一个COSERVERINFO 类型>>的结构体,它还包括了一个COAUTHINFO的结构体,再查看COAUTHINFO的定义>>发现其中定义了很多和权限有关的东西,是否能通过设置此结构实现远程调>>用COM组件呢????
我们知道DCOM的security包括activation和access两方面。CoCreateInstanceEx()只对activation有作用。对于access方面,由于安全控制是per proxy,所以你要调用CoSetProxyBlanket。
看看snowring(飘飘然) 的post,里面有调用CoCreateInstanceEx的代码,具体参数的使用和意义,你只有查查MSDN了 . ;-)
http://www.csdn.net/expert/topic/861/861094.xml?temp=.1819727另外关于DCOM 的security的详细解释参看:
Title:Security Briefs Q&A, MSJ November, 1998
URL:http://www.microsoft.com/MSJ/1198/security/security1198.htm
- 微软全球技术中心 VC技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。