如何将另一个(更多特权)用户启动进程外COM服务器

时间:2009-05-13 14:18:40

标签: com privileges runas

我想创建一个COM对象,它作为另一个用户在进程外COM服务器中运行。我该怎么做?

我可以控制COM服务器源代码,我的COM客户端是唯一一个将创建这些COM对象的客户端。

3 个答案:

答案 0 :(得分:1)

你是在为Vista写这个吗?如果是这样,您可以使用特殊的COM调用来运行处于提升状态的COM对象。有关详细信息,请参阅this文章。

如果您不是在谈论UAC,可以查看CoInitializeSecurity功能。

答案 1 :(得分:1)

我们使用COM +作为网络用户运行对象,该用户具有我们给予的某些权限(大多数是对SQL服务器的Windows身份验证。)这样做不是控制谁可以调用这些对象来直到安全我们已经给了它。

在Vista和未来,有一个COM提升功能可以完全满足您的需求。哦,看起来像有人发布了那个。按照他们离开的链接。

答案 2 :(得分:1)

使用RunAs - 请参阅http://msdn.microsoft.com/en-us/library/ms680046(VS.85).aspx

N.B。此设置也可以通过dcomcnfg(Win2000)或comexp.msc(WinXP +)在“DCOM config”下配置

如果您的对象是作为InProc服务器实现的,您可以将其与DLL代理组合(请参阅http://msdn.microsoft.com/en-us/library/ms691260(VS.85).aspx)。