Demande d'autorisations codées en XML
Si vous demandez un jeu d'autorisations personnalisé (à l'aide de RequestMinimum, RequestOptional ou RequestRefuse), vous pouvez utiliser une représentation XML du jeu d'autorisations souhaité de deux façons : vous pouvez passer une chaîne qui contient le jeu d'autorisations codé en XML en cours ou fournir l'emplacement d'un fichier XML contenant le jeu d'autorisations codé. L'exemple suivant utilise XML avec PermissionSetAttribute. L'indicateur XML est une chaîne contenant un jeu d'autorisations codé en XML qui, dans ce cas, représente un UIPermission et un RegistryPermission illimités.
Exemple
'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.
}
}
}
L'exemple suivant illustre une demande pour un jeu d'autorisations personnalisé en fournissant l'emplacement et le nom du fichier qui contient le même jeu d'autorisations codé en XML. Si vous ne spécifiez pas l'emplacement de votre fichier XML, le runtime le cherche dans le même répertoire que celui de l'application.
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.
}
}
}
Création d'un jeu d'autorisations codé en XML
Vous pouvez créer un codage XML d'un jeu d'autorisations en créant une instance de l'objet PermissionSet, en ajoutant des instances des autorisations que vous souhaitez par rapport à l'objet puis en appelant la méthode ToXml pour retourner un objet SecurityElement qui représente le codage XML ou la méthode ToString pour retourner une représentation de type chaîne du codage XML.
Voir aussi
Référence
PermissionSetAttribute Class
PermissionSet Class
Concepts
Autres ressources
Métadonnées et composants autodescriptifs
Extension des métadonnées à l'aide des attributs
Sécurité d'accès du code