Richiesta di autorizzazioni codificate in XML

Se è necessario richiedere un set di autorizzazioni personalizzato mediante RequestMinimum, RequestOptional o RequestRefuse, è possibile utilizzare una rappresentazione XML del set di autorizzazioni desiderato in una delle seguenti modalità: passando una stringa contenente l'effettivo set di autorizzazioni codificato in XML o fornendo il percorso di un file XML contenente il set di autorizzazioni codificato. Nell'esempio che segue viene utilizzato il formato XML con PermissionSetAttribute. Il flag XML è una stringa contenente un set di autorizzazioni codificato in XML che rappresenta, in questo caso, un'autorizzazione UIPermission e un'autorizzazione RegistryPermission, entrambe senza restrizioni.

Esempio

'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.
      }
   }
}

Nell'esempio seguente viene illustrata la richiesta di un set di autorizzazioni personalizzato effettuata specificando la posizione e il nome di un file contenente lo stesso set di autorizzazioni codificato in XML. Se non se ne specifica la posizione, il file XML viene ricercato nella stessa directory dell'applicazione.

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

Creazione di un set di autorizzazioni codificato in XML

È possibile generare la codifica XML di un set di autorizzazioni creando un'istanza dell'oggetto PermissionSet, aggiungendo all'oggetto le istanze delle autorizzazioni che si desidera concedere e chiamando quindi il metodo ToXml per restituire un oggetto SecurityElement che rappresenti la codifica XML, o il metodo ToString per restituire una rappresentazione di stringa della codifica XML.

Vedere anche

Riferimenti

PermissionSetAttribute Class
PermissionSet Class

Concetti

Richiesta di autorizzazioni

Altre risorse

Metadati e componenti auto-descrittivi
Estensione di metadati mediante attributi
Protezione dall'accesso di codice