Freigeben über


Anfordern von codierten XML-Berechtigungen

Wichtiger HinweisWichtig

In .NET Framework, Version 4 wurde die Laufzeitunterstützung für die Berechtigungsanforderungen RequestMinimum, RequestOptional und RequestRefuse entfernt.Code, der auf .NET Framework 4 oder höher basiert, ist von diesem Thema nicht betroffen.Weitere Informationen über diese und andere Änderungen finden Sie unter Änderungen der Sicherheit in .NET Framework 4.

Wenn Sie mithilfe von RequestMinimum, RequestOptional oder RequestRefuse einen benutzerdefinierten Berechtigungssatz anfordern müssen, können Sie eine XML-Darstellung des gewünschten Berechtigungssatzes auf zwei Arten verwenden: Entweder Sie übergeben eine Zeichenfolge, die den tatsächlichen, XML-codierten Berechtigungssatz enthält, oder Sie geben den Speicherort einer XML-Datei an, die den codierten Berechtigungssatz enthält. Im folgenden Beispiel wird XML mit dem PermissionSetAttribute verwendet. Das XML-Flag ist eine Zeichenfolge mit einem XML-codierten Berechtigungssatz, das in diesem Fall eine uneingeschränkte UIPermission und eine uneingeschränkte RegistryPermission darstellt.

Beispiel

'The attribute is placed at the assembly level.
Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, XML := "<PermissionSet class=""System.Security.PermissionSet"" version=""1""><Permission class=""System.Security.Permissions.UIPermission, mscorlib"" version=""1""><AllWindows/></Permission><Permission class=""System.Security.Permissions.RegistryPermission, mscorlib"" version=""1""><Unrestricted/></Permission></PermissionSet>")>
Namespace MyNamespace
   Public Class MyClass1
      Public Sub New()
      End Sub

      Public Sub MyMethod()
         'Perform user interface operations here.
      End Sub
   End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, XML="<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"><Permission class=\"System.Security.Permissions.UIPermission, mscorlib\" version=\"1\"><AllWindows/></Permission><Permission class=\"System.Security.Permissions.RegistryPermission, mscorlib\" version=\"1\"><Unrestricted/></Permission></PermissionSet>")]
namespace MyNamespace 
{
   using System;
   using System.Runtime.InteropServices;
   public class MyClass 
   {
      public MyClass() 
      {
      }
      public void MyMethod() 
      {
        //Perform user interface operations here.
      }
   }
}

Das folgende Beispiel veranschaulicht eine Anforderung eines benutzerdefinierten Berechtigungssatzes. Dazu wird der Speicherort und der Name der Datei angegeben, die denselben XML-codierten Berechtigungssatz enthält. Wenn Sie den Speicherort der XML-Datei nicht angeben, sucht die Laufzeit in dem Verzeichnis, in dem sich die Anwendung befindet.

Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
'The attribute is placed at the assembly level.
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, File := "pset.xml")>

Namespace MyNamespace
   Public Class MyClass1
      Public Sub New()
      End Sub 
      
      Public Sub MyMethod()
         'Perform operations that require permissions here.
      End Sub
   End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, File = "pset.xml")]
namespace MyNamespace 
{
   using System;
   using System.Runtime.InteropServices;
   
   public class MyClass 
   {
      public MyClass() 
      {
      }
      public void MyMethod() 
      {
          //Perform operations that require permissions here.
      }
   }
}

Erstellen eines XML-codierten Berechtigungssatzes

Zum Erstellen eines XML-codierten Berechtigungssatzes erstellen Sie zunächst eine Instanz des PermissionSet-Objekts und fügen anschließend Instanzen der gewünschten Berechtigungen für das Objekt hinzu. Rufen Sie dann die ToXml-Methode auf, um ein SecurityElement-Objekt zurückzugeben, das die XML-Codierung darstellt, oder rufen Sie die ToString-Methode auf, um eine Zeichenfolgenentsprechung der XML-Codierung zurückzugeben.

Siehe auch

Referenz

PermissionSetAttribute

PermissionSet

Konzepte

Anfordern von Berechtigungen

Metadaten und selbstbeschreibende Komponenten

Erweitern von Metadaten mithilfe von Attributen

Codezugriffssicherheit