Anfordern von codierten XML-Berechtigungen

Aktualisiert: November 2007

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

Konzepte

Anfordern von Berechtigungen

Referenz

PermissionSetAttribute

PermissionSet

Weitere Ressourcen

Metadaten und selbstbeschreibende Komponenten

Erweitern von Metadaten mithilfe von Attributen

Codezugriffssicherheit