Condividi tramite


Richiesta di autorizzazioni codificate in XML

Nota importanteImportante

In .NET Framework versione 4 il supporto di runtime è stato rimosso per le richieste di autorizzazione RequestMinimum, RequestOptional e RequestRefuse.Questo argomento non riguarda il codice basato su .NET Framework 4 o versioni successive.Per ulteriori informazioni su questa e altre modifiche, vedere Modifiche della sicurezza in .NET Framework 4.

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 riportato di seguito viene utilizzata la codifica 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 rappresenta la codifica XML oppure il metodo ToString per restituire una rappresentazione di stringa della codifica XML.

Vedere anche

Riferimenti

PermissionSetAttribute

PermissionSet

Concetti

Richiesta di autorizzazioni

Metadati e componenti auto-descrittivi

Estensione di metadati mediante attributi

Sicurezza dall'accesso di codice