确定安全需求

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

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

还可以通过完全禁用 DCOM(远程计算机之间的 COM)来阻止对计算机的任何远程调用。 有关详细信息,请参阅 使用 DCOMCNFG 设置系统范围安全性

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

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

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

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

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

COM 中的安全性