程式碼存取安全性的基本概念

更新:2007 年 11 月

以一般語言 Runtime 為目標的每一個應用程式,都必須和 Runtime 的安全性系統互動。當應用程式執行時,Runtime 會自動評估並給與一組使用權限。依應用程式接收的使用權限不同,它可以正常執行或產生安全性例外狀況。在特定電腦上的本機安全性設定最後將決定程式碼可以接收的使用權限。因為這些設定可以依不同電腦而變更,因此您無法確定您的程式碼是否有足夠的使用權限來執行。這剛好與 Unmanaged 開發環境不同,您不需要在意您程式碼執行時的使用權限。

每一位開發人員必須熟悉以下的程式碼存取安全性概念,才能撰寫出以一般語言 Runtime 為目標的有效應用程式:

  • 撰寫型別安全程式碼:若要使程式碼可以受益於程式碼存取安全性,您必須使用可以產生可驗證型別安全程式碼的編譯器 (Compiler)。如需詳細資訊,請參閱撰寫可驗證的型別安全程式碼

  • 命令式與宣告式語法:與 Runtime 安全性系統的互動是使用命令式和宣告式安全性呼叫來執行。宣告式呼叫會使用屬性 (Attribute) 來執行;而命令式呼叫則使用您程式碼內的類別新執行個體來執行。某些呼叫只可以由命令式來執行,某些呼叫只可以由宣告式來執行。而某些呼叫則可以由其中一種方式來執行。如需詳細資訊,請參閱安全性語法

  • 要求您程式碼的使用權限:要求是套用至組件範圍,讓您的程式碼通知 Runtime 當它執行時所需要的使用權限,或是特定指明不要使用權限。Runtime 會在程式碼載入記憶體時評估安全性要求。要求不能影響 Runtime 給與您的程式碼更多的使用權限,否則 Runtime 將不會完成您的程式碼要求。然而,要求是您的程式碼用來通知 Runtime 它執行時所需要的使用權限。如需詳細資訊,請參閱要求使用權限

  • 使用安全類別庫:您的類別庫會使用程式碼存取安全性,來指定存取類別庫時所需要的使用權限。您應該注意您的程式碼用來存取任何程式庫所需的使用權限,並在您的程式碼內作適當的要求。如需詳細資訊,請參閱使用安全類別庫

請參閱

概念

撰寫可驗證的型別安全程式碼

安全性語法

要求使用權限

使用安全類別庫

其他資源

程式碼存取安全性