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
Referência
SecurityPermissionFlag.UnmanagedCode