【发布时间】:2009-05-13 14:18:40
【问题描述】:
我想创建一个在进程外 COM 服务器中作为另一个用户运行的 COM 对象。我该怎么做?
我可以控制 COM 服务器源代码,而我的 COM 客户端是唯一将创建这些 COM 对象的客户端。
【问题讨论】:
标签: com privileges runas
我想创建一个在进程外 COM 服务器中作为另一个用户运行的 COM 对象。我该怎么做?
我可以控制 COM 服务器源代码,而我的 COM 客户端是唯一将创建这些 COM 对象的客户端。
【问题讨论】:
标签: com privileges runas
我们使用 COM+ 以网络用户的身份运行对象,该用户拥有我们赋予它的某些权限(大多数是对 SQL 服务器的 Windows 身份验证)。这没有做的是控制谁可以调用这些对象,以确保我们的安全性给了它。
在 Vista 和未来,有一个 COM 提升功能可以完全满足您的需求。哦,好像刚刚有人发了。按照他们留下的链接。
【讨论】:
你是为 Vista 写的吗?如果是这样,您可以使用在提升状态下运行 COM 对象的特殊 COM 调用。有关详细信息,请参阅this 文章。
如果您不是在谈论 UAC,您可以查看 CoInitializeSecurity 函数。
【讨论】:
使用 RunAs -- 请参阅http://msdn.microsoft.com/en-us/library/ms680046(VS.85).aspx。
注意此设置也可以通过“DCOM config”下的 dcomcnfg (Win2000) 或 comexp.msc (WinXP+) 进行配置
如果您的对象实现为 InProc 服务器,您可以将其与 DLL 代理项结合使用(请参阅http://msdn.microsoft.com/en-us/library/ms691260(VS.85).aspx)。
【讨论】: