如何初始化以不同用户身份运行的Surrogate Server的COM模拟?

时间:2016-02-22 11:35:25

标签: visual-c++ com win32com com-server

我有一个以登录用户以外的用户身份运行的应用程序。我在dllhost.exe中有一个COM服务器,它在登录用户的凭据下运行。 如何在客户端上设置COM安全性,以便我能够与服务器通信?当我尝试创建对象的实例时,我得到一个E_ACCESSDENIED(0x80070005)。 以下是详细信息: 我有一个COM组件,在标准代理(dllhost.exe)下运行,AppID {GUID} \ RunAs设置为"交互式用户"。

客户端以其他用户身份运行并调用CCO。此时,我可以确认DCOM服务启动dllhost.exe并创建服务器。但是,由于客户端和服务器的凭据不同,CCO返回0x80070005。 我也尝试将调用CCO的线程(令牌)设置为与COM服务器(dllhost)相同的凭据,但它仍然失败。

我知道我可以使用COM隐身来协商安全性,但是,它不是很清楚。我想确保它只调用这个被模拟的组件,而不是调用该进程中的所有COM调用。 任何帮助将不胜感激。

0 个答案:

没有答案