宣告式安全性

宣告式安全性語法會使用屬性取代程式碼內中繼資料中的安全性資訊。 屬性可以放在組件、類別或成員層級,用來表示您要使用的要求、需求或覆寫的類型。 要求是使用在以 Common Language Runtime 為目標的應用程式中,用來通知 Runtime 安全性系統,您的應用程式需要或不需要的使用權限。 需求和覆寫是使用在程式庫中,用來協助保護資源不被呼叫端佔用,或用來覆寫預設的安全行為。

注意事項注意事項

在 .NET Framework 4 中,.NET Framework 安全性模型和用語有一些重要的變更。如需這些變更的詳細資訊,請參閱 .NET Framework 中的安全性變更

為了使用宣告式安全性呼叫,您必須初始化使用權限物件的狀態資料,使它可以代表您所需要的特定形式使用權限。 每一種內建使用權限都有會接收 SecurityAction 列舉型別的屬性,這個列舉型別會說明執行的安全性作業類型。 然而,使用權限也可接受它本身專用的參數。 如需使用權限參數的詳細資訊,請參閱內建使用權限一節。

以下的程式碼片段將說明要求程式碼的呼叫端必須擁有自訂使用權限 MyPermission 所使用的宣告式語法。 這個使用權限是任意指定的自訂使用權限,並不存在於 .NET Framework 中。 在這個範例中,宣告式呼叫被直接放入類別定義之前,表示這個使用權限將被套用至該類別等級。 而傳遞的屬性是一個 SecurityAction.Demand 結構,表示呼叫端必須擁有這個使用權限才可執行。

<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
   
   Public Sub New()
      'The constructor is protected by the security call.
   End Sub
   
   
   Public Sub MyMethod()
      'This method is protected by the security call.
   End Sub
   
   
   Public Sub YourMethod()
      'This method is protected by the security call.
   End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
   public MyClass()
   {
      //The constructor is protected by the security call.
   }

   public void MyMethod()
   {
      //This method is protected by the security call.
   }

   public void YourMethod()
   {
      //This method is protected by the security call.
   }
}

請參閱

參考

SecurityAction

概念

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

安全性權限

其他資源

使用屬性擴充中繼資料

程式碼存取安全性

中繼資料和自我描述元件