关闭调用安全性
调用安全性确定客户端是否有权调用服务器的方法。 有两种方法可以禁用调用安全性:一种是使用 Dcomcnfg.exe 修改注册表,另一种是需要调用 CoInitializeSecurity。
使用 DCOMCNFG 关闭调用安全性
使用 Dcomcnfg.exe 修改注册表关闭调用安全性最方便。 但是,只有当客户端和服务器都不调用 CoInitializeSecurity 时,才可以使用 Dcomcnfg.exe 关闭安全性。 这是因为调用 CoInitializeSecurity 时,DCOM 将忽略注册表设置,而是使用提供给 CoInitializeSecurity 的值。
若要关闭 Dcomcnfg.exe 的安全性,客户端和服务器都必须将其身份验证级别设置为“无”。 必须完成以下步骤:
- 运行 Dcomcnfg.exe。
- 在应用程序页上,选择表示服务器的应用程序。 单击属性按钮(或双击所选应用程序)。
- 单击“常规”选项卡。
- 在默认身份验证级别列表框中,选择(无)。
- 单击应用按钮应用更改;但是,更改不会应用于应用程序的任何正在运行的实例。
- 如果客户端出现在应用程序页上的列表上,请重复步骤 2 到 5,选择客户端而不是服务器执行步骤 2。 接着单击“确定”按钮。 如果客户端不在列表中,则可以执行以下三项操作之一:
- 可以使用 Dcomcnfg.exe 在计算机范围内将客户端的“身份验证级别”设置为“无”。 (请参阅以下警告和步骤。)
- 可以编程方式将客户端的身份验证级别设置为“无”。
- 可以为客户端创建 AppID 密钥,以指示身份验证级别为“无”。 (请参阅通过注册表设置进程范围安全性。)
若要在计算机范围内将身份验证级别设置为“无”,请执行以下操作:
注意
将计算机范围的身份验证级别设置为“无”非常不安全。
- 运行 Dcomcnfg.exe。
- 选择“默认属性”选项卡。
- 在默认身份验证级别列表框中,选择(无)。
- 单击“确定”按钮。
以编程方式关闭调用安全性
若要以编程方式关闭调用安全性,客户端和服务器都必须调用 CoInitializeSecurity,并将 dwAuthnLevel 参数中的身份验证级别设置为 RPC_C_AUTHN_LEVEL_NONE。
相关主题