呼叫安全性會決定用戶端是否具有呼叫伺服器方法的許可權。 有兩種方式可以停用通話安全性:其中一種牽涉到使用 Dcomcnfg.exe 來修改登錄,另一個則需要呼叫 CoInitializeSecurity。
使用 DCOMCNFG 關閉通話安全性
使用 Dcomcnfg.exe 修改登錄,即可更輕鬆地關閉呼叫安全性。 不過,只有在用戶端和伺服器都未呼叫 CoInitializeSecurity時,使用 Dcomcnfg.exe 才能夠關閉安全性。 這是因為呼叫 CoInitializeSecurity 時,DCOM 會忽略登錄設定,並改用提供給 CoInitializeSecurity 的值。
若要關閉具有 Dcomcnfg.exe的安全性,用戶端和伺服器都必須將其驗證層級設定為 None。 下列步驟必須完成:
- 執行 Dcomcnfg.exe。
- 在 [應用程式] 頁面上,選取代表伺服器的應用程式。 按 [屬性] 按鈕(或按兩下選取的應用程式)。
- 按一下 一般 索引標籤。
- 從 [預設驗證層級] 清單框中,選取 [[無]。
- 按一下 [套用] 按鈕以套用變更,不過,變更不會套用至執行中的應用程式实例。
- 如果客戶端出現在 應用程式 頁面上的清單上,請重複步驟 2 到 5,選擇用戶端,而不是步驟 2 的伺服器。 然後按下 確定 按鈕。 如果用戶端不在清單中,您可以執行下列三件事之一:
- 您可以使用 Dcomcnfg.exe,在全計算機上將客戶端的驗證層級設定為 [無]。 (請參閱下方的警告和步驟。)
- 您可以以程式設計方式將客戶端的驗證層級設定為 None。
- 您可以為用戶端建立 AppID 金鑰,以指出 [無] 的驗證層級。 (請參閱 透過登錄檔設定 Process-Wide 安全性。)
若要在整台計算機中將驗證層級設為無:
注意
將全計算機驗證層級設定為 [無] 是非常不安全的。
- 執行 Dcomcnfg.exe。
- 選擇 [預設屬性] 索引標籤。
- 從 [預設驗證層級] 清單框中,選擇 [[無]。
- 請按一下 確定 按鈕。
以程式設計方式關閉通話安全性
若要以程式設計方式關閉呼叫安全性,用戶端和伺服器都必須呼叫 CoInitializeSecurity,將 dwAuthnLevel 參數中的驗證層級設定為 RPC_C_AUTHN_LEVEL_NONE。
相關主題