Zabezpieczenia imperatywne

Składnia zabezpieczeń imperatywnych wykonuje wywołanie zabezpieczeń przez utworzenie nowego wystąpienia obiektu uprawnienia, które chcesz wywołać. Można użyć składni imperatywnej, aby wprowadzać wymagania i zmiany w parametrach, ale nie żądania.

Przed wykonaniem wywołania zabezpieczeń musisz zainicjować dane stanu obiektu uprawnień, tak aby reprezentował on konkretną formę potrzebnego uprawnienia. Na przykład podczas tworzenia obiektu FileIOPermission można użyć konstruktora, aby zainicjować obiekt FileIOPermission, tak aby reprezentował on albo nieograniczony dostęp do wszystkich plików, albo brak dostępu do plików. Można też użyć innego obiektu FileIOPermission , przekazując parametry określające typ dostępu, który dany obiekt ma przedstawiać (czyli odczyt, dołączanie lub zapis) i jakie pliki mają być chronione przez ten obiekt.

Oprócz używania składni zabezpieczeń imperatywnych do wywołania pojedynczego obiektu zabezpieczeń można jej również użyć do zainicjowania grup uprawnień w zestawie uprawnień. Na przykład ta technika jest jedynym sposobem, aby niezawodnie wykonywać wywołania metody assert dla wielu uprawnień w jednej metodzie. Użyj klasy PermissionSet i NamedPermissionSet do tworzenia grupy uprawnień, a następnie wywołaj żądaną metodę wywoływania zabezpieczeń.

Można użyć składni imperatywnej, aby wprowadzać wymagania i zmiany w parametrach, ale nie żądania. Dla żądań i zmian można używać składni imperatywnej zamiast składni deklaratywnej, kiedy informacje niezbędne do zainicjowania stanu uprawnień zostają ujawnione tylko w czasie wykonywania. Na przykład aby zapewnić, że obiekty wywołujące mają uprawnienie do odczytu określonego pliku, ale nie znasz nazwy tego pliku aż do czasu wykonywania, użyj żądania imperatywnego. Można także korzystać z imperatywnego sprawdzania, zamiast ze sprawdzania deklaratywnego, kiedy zachodzi konieczność ustalenia w czasie wykonywania, czy warunek zawiera i, w oparciu o wynik testu, wykonuje żądanie zabezpieczeń (lub nie).

Następujący fragment kodu pokazuje składnię imperatywną dla żądania dotyczącego obecności uprawnienia niestandardowego MyPermission w wywołaniach Twojego kodu. To uprawnienie jest hipotetycznym uprawnienia niestandardowym i nie istnieje w programie .NET Framework. Nowe wystąpienie obiektu MyPermision jest tworzone w sekcji MyMethod, chroniąc tylko tę metodę za pomocą wywołania zabezpieczeń.

Public Class MyClass1
   
   Public Sub New()

   End Sub
   
   Public Sub MyMethod()
      'MyPermission is demanded using imperative syntax.
      Dim Perm As New MyPermission()
      Perm.Demand()
      'This method is protected by the security call.
   End Sub
   
   Public Sub YourMethod()
      'YourMethod 'This method is not protected by the security call.
   End Sub
End Class
public class MyClass {
   public MyClass(){
    
   }

   public void MyMethod() {
       //MyPermission is demanded using imperative syntax.
       MyPermission Perm = new MyPermission();
       Perm.Demand();
       //This method is protected by the security call.
   }

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

Zobacz też

Informacje

FileIOPermission

Klasa SystemSecurityPermissionSet

NamedPermissionSet

Koncepcje

Korzystanie z metody Assert

Inne zasoby

Zabezpieczenia dostępu kodu