如何以另一个(更具特权的)用户的身份启动进程外COM服务器

如何以另一个(更具特权的)用户的身份启动进程外COM服务器,com,privileges,runas,Com,Privileges,Runas,我想创建一个COM对象,作为另一个用户在进程外COM服务器中运行。我该怎么做 我可以控制COM服务器源代码,我的COM客户端是唯一一个将创建这些COM对象的客户端。您是为Vista编写这篇文章的吗?如果是这样,您可以使用一个特殊的COM调用,在提升状态下运行COM对象。有关更多详细信息,请参阅文章 如果您不是在谈论UAC,您可能会签出该函数。我们使用COM+以网络用户的身份运行对象,该网络用户拥有我们授予它的某些权限(大多数权限是通过SQL server的Windows身份验证)。这不能控制谁可

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


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

您是为Vista编写这篇文章的吗?如果是这样,您可以使用一个特殊的COM调用,在提升状态下运行COM对象。有关更多详细信息,请参阅文章


如果您不是在谈论UAC,您可能会签出该函数。

我们使用COM+以网络用户的身份运行对象,该网络用户拥有我们授予它的某些权限(大多数权限是通过SQL server的Windows身份验证)。这不能控制谁可以调用这些对象来解除我们授予它的安全性

在Vista和future中,有一个COM提升功能,可以完全满足您的需求。哦,看起来有人刚刚发布了。按照他们留下的链接进行操作。

使用RunAs——请参阅

注意:此设置也可以通过“DCOM配置”下的dcomcnfg(Win2000)或comexp.msc(WinXP+)进行配置


如果对象实现为InProc服务器,则可以将其与DLL代理(请参阅)结合使用。

对于运行Exchange server的任何操作系统,都需要这样做。至少是Windows 2003和2008。我花了一段时间才弄明白整个COM+是如何工作的,但现在它似乎做了需要做的事情。谢谢你的信息