Executando verificações de segurança declarativas

As demandas declarativas para PrincipalPermission funcionam da mesma forma que as demandas declarativas para permissões de acesso do código. As demandas podem ser colocadas na classe no nível bem como em métodos individuais, em propriedades, ou em eventos. Se uma procura declarativa é colocada na classe e no membro de nível, a demanda declarativa substitui no membro (ou) substitui a demanda no nível da classe.

O exemplo de código a seguir mostra uma versão modificada do método de PrivateInfo de exemplo da seção anterior. Esta versão usa a segurança declarativa imposta. PrincipalPermissionAttribute define a entidade de segurança que o thread atual deve ter que invocar o método. Passe somente SecurityAction.Demand 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

Esse método lançará uma exceção de segurança se o thread atual não contém a entidade de segurança apropriada. Se o usuário entra em 1, o método de PrivateInfo é invocado e vídeos de mensagem no console.

You have access to the private data!

Consulte também

Referência

PrincipalPermission

Conceitos

Verificações de segurança baseada em funções