Solicitar permissões codificadas em XML

Observação importanteImportante

No .NET Framework versão 4, o suporte de tempo de execução foi removido para o RequestMinimum, RequestOptional, e RequestRefuse as solicitações de permissão.Este tópico não se aplica ao código que se baseia o .NET Framework 4 ou posterior.Para obter mais informações sobre esta e outras alterações, consulte Alterações de segurança na.NET Framework 4.

Se você precisa solicitar um conjunto de permissão personalizada (usando RequestMinimum, RequestOptional, ou RequestRefuse), você pode usar uma representação XML da permissão desejada definido em uma das duas maneiras: ou você pode passar uma seqüência de caracteres que contém o conjunto de permissão de XML codificado real ou você pode fornecer o local de um arquivo XML que contém o conjunto de permissões codificado. O exemplo a seguir usa o XML com o PermissionSetAttribute. O sinalizador XML é uma seqüência de caracteres que contém um conjunto de permissão codificados em XML, nesse caso, representa um irrestrito UIPermission e um irrestrito RegistryPermission.

Exemplo

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

O exemplo a seguir mostra uma solicitação de permissão personalizada definida, fornecendo o local e o nome do arquivo que contém o mesmo conjunto de permissão codificados em XML. Se você não especificar o local do arquivo XML, o runtime procura no mesmo diretório do aplicativo.

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

Criando um conjunto de permissões XML codificado

Você pode criar um XML de codificação de um conjunto de permissões pelo criando uma instância do PermissionSet objeto, adicionando instâncias das permissões que você deseja para o objeto e, em seguida, chamar o ToXml método para retornar um SecurityElement o objeto que representa o XML de codificação ou chamando o ToString método para retornar uma representação de seqüência de caracteres da codificação XML.

Consulte também

Referência

PermissionSetAttribute

PermissionSet

Conceitos

Solicitando permissões

Metadados e componentes autodescritivos

Estendendo metadados usando atributos

Segurança de Acesso de código