程序設計元件安全性

當您在包含您元件的 COM+ 應用程式中使用角色型安全性時,您可以從元件記憶體取程式設計安全性功能。 您可以檢查角色成員資格,以判斷是否執行特定區段的程式代碼、可以使用安全性呼叫內容物件存取安全性資訊,以及判斷是否已啟用目前呼叫的安全性。 您可以使用 SecurityCallContext 對象的參考(適用於 Microsoft Visual Basic 應用程式)或 ISecurityCallContext 介面指標(適用於 C 和 Microsoft Visual C++ 應用程式),來執行所有這些工作。

如需以程序設計角色為基礎的安全性的詳細資訊,請參閱本節中的下列主題:

模擬和 COM 安全性功能

如果您的元件用於不使用角色型安全性的 COM+ 應用程式中,則無法使用程式設計角色檢查和安全性呼叫內容資訊。 不過,您可以使用 COM 所提供的程式設計安全性功能。 如需詳細資訊,請參閱 COM 中的安全性。

雖然您可以使用 COM 所提供的大部分安全性功能,但是您無法從屬於 COM+ 應用程式的元件呼叫 CoInitializeSecurity,因為 CoInitializeSecurity 是由 COM+ 應用程式執行的代理所呼叫。 不過,您可以呼叫其他安全性函式,例如 CoQueryClientBlanket,以擷取客戶端的相關信息。

特別是,當您需要使用用戶端的身分識別來存取某些資源時,例如,存取受安全性描述元保護的檔案,或將用戶端的身分識別傳播至資料庫時,您可以以程式設計方式執行模擬。 如需何時及如何執行這項操作的詳細資訊,請參閱 用戶端模擬和委派

測試安全性功能

如果您在元件中使用 COM+ 程式設計安全性,則必須在準備好測試元件的安全性功能時,將元件整合到 COM+ 應用程式中。 如果使用 COM+ 程式設計安全性的元件是在未整合至 COM+ 應用程式的情況下執行,則會擲回例外狀況。 因此,如果您想要確保這類元件也能夠成功整合至不屬於 COM+ 環境的應用程式,您必須確定已適當地處理這些例外狀況。

記錄安全性需求

如果您要為使用角色型安全性的 COM+ 應用程式撰寫獨立元件,您必須記錄元件,以便在元件整合到 COM+ 應用程式時適當地設定安全性。 例如,您應該識別必須新增的角色,並說明應該指派給每個角色的方法和介面。 此外,如果呼叫 IsCallerInRole(“Teller”) 之類的方法,您應該描述只有 Tellers 可以存取的功能。 您也應該指定是否需要角色,才能協助保護整個元件的存取權。

客戶端驗證

用戶端模擬和委派

連結庫應用程式安全性

多層式應用程式安全性

角色型安全性 管理員

在 COM+ 中使用軟體限制原則