Demande d'autorisations codées en XML

Mise à jour : novembre 2007

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 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

Concepts

Demande d'autorisations

Référence

PermissionSetAttribute

PermissionSet

Autres ressources

Métadonnées et composants autodescriptifs

Extension des métadonnées à l'aide des attributs

Sécurité d'accès du code