我想创建一个作为另一个用户在进程外 COM 服务器中运行的 COM 对象。我怎么做?
我可以控制 COM 服务器源代码,而我的 COM 客户端是唯一将创建这些 COM 对象的客户端。
我想创建一个作为另一个用户在进程外 COM 服务器中运行的 COM 对象。我怎么做?
我可以控制 COM 服务器源代码,而我的 COM 客户端是唯一将创建这些 COM 对象的客户端。
你是为 Vista 写的吗?如果是这样,您可以使用在提升状态下运行 COM 对象的特殊 COM 调用。有关更多详细信息,请参阅本文。
如果你不是在谈论 UAC,你可以查看CoInitializeSecurity函数。
我们使用 COM+ 以网络用户的身份运行对象,该用户具有我们赋予它的某些权限(大多数是对 SQL 服务器的 Windows 身份验证)。这没有做的是控制谁可以调用这些对象,直到我们赋予它的安全性.
在 Vista 和未来,有一个 COM 提升功能可以完全满足您的需求。哦,好像刚刚有人发了。按照他们留下的链接。
使用 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)。