Share via


Como: Solicitar Permissão para Acessar Código Não Gerenciado

Você pode com com facilidade solicitação permissões aplicando atributos que representam as permissões que você deseja solicitação ao nível de assembly do seu código.Os atributos que você usar podem variar, dependendo das permissões que você está solicitando.As solicitações são compiladas no metadados do manifesto do assembly e avaliadas pelo tempo de execução quando seu código é carregado na memória durante a execução.

O exemplo a seguir mostra como solicitar permissão para acesso código não gerenciado.Observe que ele usa um SecurityPermissionAttribute e ele especifica dois valores: a SecurityAction valor que especifica o tipo de solicitação de permissão que está sendo feita)RequestMinimum, neste caso) e um sinalizar que indica qual permissão está sendo solicitada.Nesse caso, SecurityPermissionFlag.UnmanagedCode Especifica uma solicitação de permissão de código não gerenciado.The assembly: sintaxe informa ao compilador que o atributo está sendo aplicado no nível do assembly.

Exemplo

Imports System
Imports System.Security.Permissions
Imports System.Runtime.InteropServices
'The request is placed at the assembly level.
<assembly: SecurityPermissionAttribute(SecurityAction.RequestMinimum, Flags := SecurityPermissionFlag.UnmanagedCode)>

Namespace MyNamespace
   Public Class MyClass1
      Public Sub New()

      End Sub
       
      Public Sub MyMethod()
         'Perform interoperation with unmanaged code here.
      End Sub 
   End Class
End Namespace
//The request is placed at the assembly level.
using System.Security.Permissions;
[assembly:SecurityPermissionAttribute(SecurityAction.RequestMinimum, Flags = SecurityPermissionFlag.UnmanagedCode)]

namespace MyNamespace {
   using System;
   using System.Runtime.InteropServices;
   
   public class MyClass {
      public MyClass() {

      }
      public void MyMethod() {
        //Perform interoperation with unmanaged code here.
      }
   }
}

Se o código anterior não receber SecurityPermission with the UnmanagedCode sinalizar, o tempo de execução lança um PolicyException e o código não é permitido executar. No entanto, se o código que recebe essa permissão, ele tem permissão para executar.

Consulte também

Conceitos

Solicitando permissões

Referência

SecurityPermissionAttribute

SecurityAction

SecurityPermissionFlag.UnmanagedCode

Outros recursos

Estendendo metadados usando atributos

Segurança de Acesso de código

Metadados e Componentes Autodescritivas