共用方式為


關閉啟動畫面保護

一般而言,啟用會使用預設安全性設定。 不過,您可以藉由指定 COAUTHINFO 結構來控制啟用安全性,這是傳遞至啟用函式的 COSERVERINFO 結構的成員。 如果用戶端在 COAUTHINFO 結構中指定RPC_C_AUTHN_LEVEL_NONE的驗證層級,則不會嘗試驗證。 否則會嘗試安全啟用,如果驗證失敗,則啟用會失敗。

如果用戶端未指定明確 COAUTHINFO 結構,而是將指標設定為 NULL,COM 會嘗試驗證用戶端。 如果無法驗證用戶端,COM 會檢查啟動許可權安全性描述元,以查看是否有 NULL DACL 或允許存取 Everyone 的 ACL。 如果這項檢查成功,就會啟動伺服器。 因此,即使用戶端未指定 COAUTHINFO結構,伺服器允許時可能會進行不安全的啟用。

注意

若要允許未經驗證的網路使用者執行 COM 應用程式,應用程式角色必須包含匿名使用者。 從 Windows Server 2003 開始,匿名用戶預設不會包含在 [所有人] 群組中。

 

為什麼客戶即使在伺服器允許不安全的啟動時,也會想要明確地停用啟動安全性? 因為當用戶端不想要或需要安全性檢查時,明確關閉啟用安全性會增加效能。

必須執行下列動作,才能明確關閉啟用安全性:

  • 客戶端必須在提供給啟用函式的 COAUTHINFO 結構中,於 COSERVERINFO 結構內指定驗證層級為 RPC_C_AUTHN_LEVEL_NONE。
  • 客戶端必須在提供給啟用功能的 COSERVERINFO 結構中指定模擬層級為RPC_C_IMP_LEVEL_IMPERSONATE的 COAUTHINFO 結構。 如果未傳遞此值,您將會收到RPC_S_SERVER_UNAVAILABLE。
  • 伺服器必須為 預設啟動許可權指定 Everyone。 執行這項工作的建議方式是使用 Dcomcnfg.exe,如下所示:
    1. 執行 Dcomcnfg.exe。
    2. 在 [應用程式] 頁面上,選取代表伺服器的應用程式。 按一下 屬性 按鈕(或按兩下選取的應用程式)。
    3. 在 [安全性] 屬性頁面上,按一下 [使用自定義啟動許可權] 按鈕。
    4. 按 [編輯] 按鈕在 [啟動權限] 區域中。
    5. 在 [登錄值許可權] 對話框中,按一下 [新增] 按鈕。
    6. 在清單框中,選取 所有人 的項目。
    7. 在 [存取 類型] 清單框中,選擇 [[允許啟動]
    8. 點擊 [確定] 按鈕。

注意

在 Windows Server 2003 中,COM+ 系統應用程式的驗證功能包含值EOAC_DISABLE_AAA。 這個值會停用啟動即啟動器 (AAA) 啟用,會在啟動系統應用程式時,CoInitializeSecurity 呼叫中使用。 將驗證功能設定為 EOAC_DISABLE_AAA可讓以特殊許可權帳戶 (例如 LocalSystem) 執行的應用程式,協助防止其身分識別用來啟動不受信任的元件。

 

關閉通話安全性