Anfordern von codierten XML-Berechtigungen
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 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 Class
PermissionSet Class
Konzepte
Weitere Ressourcen
Metadaten und selbstbeschreibende Komponenten
Erweitern von Metadaten mithilfe von Attributen
Codezugriffssicherheit