安全性界限
安全性只會在應用程式界限進行檢查。 也就是說,對於相同應用程式中的兩個元件,當其中一個元件呼叫另一個元件時,將不會進行安全性檢查。 不過,如果兩個應用程式共用相同的進程,而其中一個中的元件會呼叫另一個中的元件,就會進行安全性檢查,因為應用程式界限已越過。 同樣地,如果兩個應用程式位於不同的伺服器進程,而第一個應用程式中的元件呼叫第二個應用程式中的元件,就會進行安全性檢查。
因此,如果您有兩個元件,而且您想要在一個呼叫另一個元件時完成安全性檢查,則必須將元件放在個別的 COM+ 應用程式中。
因為 COM+ 連結庫應用程式是由其他進程所裝載,因此連結庫應用程式和裝載進程之間有安全性界限。 此外,連結庫應用程式不會控制進程層級安全性,這會影響您需要為其設定安全性的方式。 如需詳細資訊,請參閱 連結庫應用程式安全性。
判斷是否必須在呼叫元件時執行安全性檢查,是以具現化設定元件時所建立之對象內容的安全性屬性為基礎。 如需詳細資訊,請參閱 安全性內容屬性。
元件層級存取檢查
針對 COM+ 伺服器應用程式,您可以選擇在元件層級或進程層級強制執行存取檢查。
當您選取元件層級存取檢查時,您會啟用更細緻的角色指派。 您可以將角色指派給元件、介面和方法,並達成清楚的授權原則。 這是使用角色型安全性之應用程式的標準組態。
針對 COM+ 連結庫應用程式,如果您想要使用角色,您必須選取元件層級安全性。 連結庫應用程式無法使用進程層級安全性。
如果您使用以程式設計角色為基礎的安全性,您應該選取元件層級存取檢查。 只有在啟用元件層級安全性時,才能使用安全性呼叫內容資訊。 如需詳細資訊,請參閱 安全性呼叫內容資訊。
此外,當您選取元件層級存取檢查時,安全性屬性將會包含在對象內容中。 這表示安全性設定可以在如何啟動物件方面扮演角色。 如需詳細資訊,請參閱 安全性內容屬性。
進程層級存取檢查
進程層級檢查僅適用於應用程式界限。 也就是說,您為整個 COM+ 應用程式定義的角色將決定誰獲授與應用程式內任何資源的存取權。 不適用更精細的角色指派。 基本上,角色是用來建立安全性描述元,而應用程式元件的任何呼叫都會經過驗證。 在此情況下,您不想建構具有多個角色的詳細授權原則。 應用程式會使用單一安全性描述元。
針對 COM+ 連結庫應用程式,您不會選取行程層級的存取檢查。 連結庫應用程式將會在客戶端的進程中執行,因此不會控制進程層級安全性。 如需詳細資訊,請參閱 連結庫應用程式安全性。
啟用進程層級存取檢查后,無法使用安全性呼叫內容資訊。 這表示當只使用進程層級安全性時,您無法執行程式設計安全性。 如需詳細資訊,請參閱 安全性呼叫內容資訊。
此外,安全性屬性將不會包含在對象內容中。 這表示當只使用進程層級存取檢查時,安全性設定永遠不會在對象啟動方式中扮演角色。 如需詳細資訊,請參閱 安全性內容屬性。
相關主題