【问题标题】:How do I start an out of process COM server as another (more privileged) user如何以另一个(更多特权)用户身份启动进程外 COM 服务器
【发布时间】:2009-05-13 14:18:40
【问题描述】:

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

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

【问题讨论】:

    标签: com privileges runas


    【解决方案1】:

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

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

    【讨论】:

    • 我花了一段时间才弄清楚整个 COM+ 的工作原理,但现在它似乎可以满足需要了。感谢您的信息
    【解决方案2】:

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

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

    【讨论】:

    • 这需要适用于任何运行 Exchange Server 的操作系统。至少是 Windows 2003 和 2008。
    【解决方案3】:

    使用 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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      相关资源
      最近更新 更多