2

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

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

4

3 回答 3

1

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

如果你不是在谈论 UAC,你可以查看CoInitializeSecurity函数。

于 2009-05-13T14:39:20.477 回答
1

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

在 Vista 和未来,有一个 COM 提升功能可以完全满足您的需求。哦,好像刚刚有人发了。按照他们留下的链接。

于 2009-05-13T14:42:51.063 回答
1

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

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

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

于 2009-05-13T14:52:54.447 回答