Solicitando permissões XML codificado

Se você precisar solicitar uma permissão personalizada definida (usando RequestMinimum, RequestOptional, or RequestRefuse), você pode usar uma representação XML do conjunto de duas maneiras de permissões desejado: ou você pode passar uma seqüência de caracteres que contém o real XML codificado permissão conjunto ou você pode informar o local de um arquivo XML que contém o codificado permissão definido.O exemplo a seguir utiliza XML com o PermissionSetAttribute. O sinalizar XML é uma seqüência de caracteres contendo um codificados em XML permissão definido, nesse caso, que representa um irrestrito UI permissão e um irrestrito Registro permissão.

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 definir 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 seu arquivo XML, o tempo de execução procura no mesmo diretório sistema autônomo o 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 XML codificado permissão conjunto

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

Consulte também

Conceitos

Solicitando permissões

Referência

PermissionSetAttribute

PermissionSet

Outros recursos

Metadados e Componentes Autodescritivas

Estendendo metadados usando atributos

Segurança de Acesso de código