基于角色的安全性
小結
致謝
附錄 A:MsCorCfg.msc
簡介
在傳統的程序開發模式中,管理員通常將軟件安裝到本地磁盤的一個固定位置;當從這種模式轉向支持動態下載和執行、甚至支持遠程執行的環境時,安全性是要考慮的一個最重要的因素。為了支持這種模式,Microsoft .NET 框架提供了一個強健的安全系統,該系統能夠限制代碼在嚴格約束的、管理員定義的安全上下文中運行。本文研究了 .NET 框架中的一些基本安全性特性。
許多安全模型將安全性與用戶和它們的組(或角色)關聯起來。這就意味著,用戶和代表這些用戶運行的所有代碼或者被允許對重要資源執行操作,或者不被允許執行操作。在大多數操作系統中,安全性都是按照這種模型構建的。.NET 框架提供了一種開發人員定義的安全模型,稱為基于角色的安全性,它也是按照這種類似的結構運行的;诮巧陌踩缘闹饕橄笫 Principals 和 Identity。此外,.NET 框架也在代碼上提供了安全性,這種安全性稱為代碼訪問安全性(也稱為基于證據的安全性)。使用代碼訪問安全性,某個用戶可以獲得信任以訪問某個資源,但是如果用戶執行的代碼不受信任,那么訪問資源將會被拒絕。與基于特定用戶的安全性對比,基于代碼的安全性是允許安全性得以在可移動代碼 (mobile code) 上體現的一個基本工具?梢苿哟a可以由任意數量的用戶下載和執行,而這些用戶在開發時都是不了解的。代碼訪問安全性主要集中于一些核心的抽象,它們是:證據、策略和權限;诮巧陌踩院痛a訪問安全性的安全抽象是用 .NET 框架類庫中的類型來表示的,而且是用戶可擴展的。這里有兩點需要注意:以一致和連貫的方式向一些編程語言公開安全模型,以及保護和公開 .NET 框架類庫中代表資源(使用這些資源可能會破壞安全性)的類型。
.NET 框架安全系統是在傳統操作系統安全性的上層運行的。這種方式在操作系統安全性上又增加了一層更具表現力和可擴展的安全性。這兩層安全性相互補充。(操作系統安全系統也可以將一些責任委托給托管代碼的公共語言運行庫安全系統,因為該運行庫安全系統比傳統的操作系統安全性粒度更細,可配置性也更強。)
本文提供了 .NET 框架安全性方面的概述,具體講述基于角色的安全性、驗證、代碼訪問安全性和堆棧審核方面的內容,并使用一些小型編程示例揭示一些概念。本文沒有論及其他的運行庫安全工具,如加密和獨立存儲。
順便提一下,本文通常描述的是上面這些安全特性的默認行為。然而,.NET 框架安全系統具有極強的可配置性和可擴展性。這就是該系統的一個主要優點,但遺憾的是,在這篇概念性描述的文章中不能詳細地對這一點進行討論。
返回頁首
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/