确定安全需求

如何为应用程序设置 COM 安全性取决于应用程序所需的安全类型。 有多种常见情况可确定应执行的操作。

如果决定使用 COM 安全默认值,则无需执行任何操作“COM 处理全部操作”。 有关这些默认设置的信息,请参阅 COM 安全默认值

还可以通过在远程计算机) 之间完全禁用 DCOM (COM 来防止对计算机进行任何远程调用。 有关详细信息,请参阅 使用 DCOMCNFG 设置System-Wide安全性

对于旧应用程序或新应用程序,可以在注册表中设置进程范围的安全性。 有关详细信息,请参阅 通过注册表设置进程范围的安全性

还可以替代对进程中某些接口的调用的默认安全设置,同时为进程其余部分设置默认安全性 (以允许 COM 处理常规情况) 。 有关详细信息,请参阅 在接口代理级别设置安全性

对于复杂的安全要求,你可以以编程方式处理所有安全,而不是允许 COM 为你处理它。 为此,请调用 CoInitializeSecurity 以禁用自动身份验证,然后通过基于每个接口代理设置安全性来控制所有安全设置。 有关详细信息,请参阅在接口代理级别使用 CoInitializeSecurity 设置 Processwide Security 和设置安全性。

在某些情况下,你可能想要完全关闭安全性。 你可能决定应用程序不需要任何安全性,或者你可能希望在开发期间禁用安全性,以便可以单独启用安全功能。 若要了解如何禁用 COM 安全性,请参阅 “关闭安全性”。

COM 中的安全性依赖于由安全包管理的身份验证服务。 NTLMSSP 适用于许多应用程序,但不提供其他包提供的更可靠的安全性。 因此,COM 支持 Schannel 安全包和 Kerberos v5 安全协议。 有关使用这些安全包的更多详细信息,请参阅 COM 和安全包

COM 中的安全性