Executar verificações de segurança declarativa
As solicitações declarativas para PrincipalPermission funcionam da mesma forma como as solicitações declarativas para permissões de acesso do código. Demandas podem ser colocadas no nível de classe, bem como em métodos individuais, propriedades ou eventos. Se uma demanda declarativa é colocada no nível de classe e membro, a demanda declarativa no membro substitui ou substitui a demanda no nível de classe.
O exemplo de código a seguir mostra uma versão modificada da PrivateInfo método a partir de exemplo. da seção anterior Esta versão usa segurança declarativa. O PrincipalPermissionAttribute define a entidade que o thread atual deve ter para invocar o método. Simplesmente passar SecurityAction com o nome e a função que você precisa.
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "MyUser", Role = "User")]
public static void PrivateInfo()
{
//Print secret data.
Console.WriteLine("\n\nYou have access to the private data!");
}
Public Shared Sub _
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "MyUser", Role := "User")> _
PrivateInfo()
'Print secret data.
Console.WriteLine(ControlChars.CrLf + "You have access to the private data!")
End Sub
Este método lança uma exceção de segurança se o segmento atual não contiver a entidade de segurança adequada. Se o usuário insere 1, o PrivateInfo método é chamado e a seguinte mensagem é exibida no console.
You have access to the private data!