隐藏组件服务 ()

确定模拟行为有两个要素:客户端通过模拟级别显式授予服务器的权限,以及服务器代表客户端进行调用时掩码自己的标识的能力。 后者的功能称为 遮盖。 遮盖与服务器发出调用的安全标识有关。

当服务器模拟客户端时,它可以直接访问客户端的安全凭据。 从本地意义上说,服务器线程采用客户端的标识。 但是,当服务器在其进程之外发出调用时,客户端标识不一定投影为调用所依据的标识。

启用遮盖后,服务器模拟客户端的调用可以在客户端的标识下进行。 禁用隐藏后,服务器将按照服务器的标识进行调用。

此外,还有两种形式的遮盖、 静态盖和动态遮盖,可描述为:

  • 模拟与静态遮盖。 原始客户端标识 (实现为服务器线程令牌,) 可以使用 CoSetProxyBlanket 在调用中向下游服务器呈现一次,在代理上设置原始客户端标识一次,该线程令牌将在后续方法调用中使用。
  • 模拟动态遮盖。 原始客户端标识在对下游服务器的每个方法调用上都发现为服务器线程令牌。 实际上,可以动态确定呈现的标识。 执行此操作所需的开销可能要高得多。

对于 COM+ 应用程序,默认配置用于动态隐藏功能。 这可以通过编程方式和管理方式更改。 虽然动态遮盖可能具有性能开销,但它提供通常要求在一开始使用模拟的情况所需的灵活性。

有关可能行为的遮盖和精确描述的详细信息,请参阅 COM 文档中的 隐藏

客户端模拟和委派

模拟的客户端要求

模拟的服务器端要求