共用方式為


角色架構安全性

.NET Framework 提供了整合 Managed 程式碼和 COM+ 安全性服務的機制。這項功能是依賴和執行程式碼關聯的 Microsoft® Windows NT® Token 做為識別 (Identity) 的基礎。

注意 .NET Framework 和 COM+ 角色安全性架構機制是相互獨立的,在一個應用程式中只能使用其中一個機制。

COM+ 安全性依賴 Windows NT 帳戶和處理序/執行序模擬。如果 Managed 程式碼提供驗證 (Authentication) 服務,在呼叫任何 COM 物件之前,它必須取得 Windows NT 安全性 Token 並進行模擬。

您可以將 SecurityRoleAttribute 屬性套用於從 System.EnterpriseServices.ServicedComponent 類別衍生而來的類別,即可將角色加入應用程式中,並建立角色和元件的關聯。將這個屬性套用於整個組件可確保角色存在於 COM+ 資料庫目錄中。當您將這個屬性套用於元件時,它會確保角色存在於應用程式組態中,並建立目標元件和角色的關聯。

如果將 SetEveryoneAccess 屬性設定為 true,會將 Everyone 角色加入為成員。預設值為 false,表示沒有為角色指派任何使用者。此時,您必須改用手動方式來設定。這項技巧最適合用於管理員的角色,這個角色對系統擁有相當大的控制權。

安全性角色在組件、類別、方法和介面層級都受到支援。和其他方法屬性一樣,安全性組態目前並未讓介面定義和方法實作共用。

SecurityCallContext 類別可提供您存取 COM+ 安全性呼叫內容的權限,和 Visual Basic 中的 SecurityCallContext 物件類似但不完全相同。新的執行個體並不是用程式建立的,而是透過 CurrentCall 屬性取得的。下列表格中所描述的其他屬性會在 SecurityCallContext 物件上呼叫方法。

屬性 備註
Callers 從 COM+ 的 SecurityCallContext 物件中擷取 Callers 項目,並將項目當成 SecurityCallers 物件傳回。
CurrentCall 傳回和目前呼叫關聯的 SecurityCallContext 物件參考。
DirectCaller 從 COM+ 的 SecurityCallContext 物件中擷取 DirectCaller 項目,並將項目當成 SecurityIdentity 物件傳回。
MinAuthenticationLevel 從 COM+ 的 SecurityCallContext 物件中擷取 MinAuthenticationLevel 項目。
NumCallers 從 COM+ 的 SecurityCallContext 物件中擷取 NumCallers 項目。
OriginalCaller 從 COM+ 的 SecurityCallContext 物件中擷取 OriginalCaller 項目,並將項目當成 SecurityIdentity 物件傳回。

請參閱

可用的 COM+ 服務摘要 | SecurityRoleAttribute | System.EnterpriseServices 命名空間