Objetos PrincipalPermission
O modelo de segurança baseado em função da suporte a um objeto de permissão similar aos objetos de permissão localizados no modelo de segurança de acesso do código. Esse objeto, PrincipalPermission, representa a identidade e a função que uma classe principal específico deve executar. Você pode usar a classe de PrincipalPermission para verificações de segurança declarativos obrigatórios e.
Obrigatória para implementar a classe de PrincipalPermission , crie uma nova instância da classe e inicializar-la com o nome e a função que você deseja que os usuários tenham acesso ao código. Por exemplo, o seguinte código inicializa uma nova instância deste objeto com uma identidade de "Joan" e uma função de "Teller".
String id = "Joan";
String role = "Teller";
PrincipalPermission principalPerm = new PrincipalPermission(id, role);
Dim id As String = "Joan"
Dim role As String = "Teller"
Dim principalPerm As New PrincipalPermission(id, role)
Você pode criar uma permissão similar que usa declarativa a classe de PrincipalPermissionAttribute . O código a seguir inicializa declarativa a identidade a "Joan" e a função a "Teller".
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Joan", Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "Joan", Role := "Teller")>
Enquanto a verificação de segurança é executado, a identidade especificada e a função devem corresponder para que a verificação foi bem-sucedida. No entanto, quando você cria o objeto de PrincipalPermission , você pode passar uma cadeia de caracteres nula de identidade para indicar que a identidade da entidade de segurança pode ser qualquer coisa. De maneira semelhante, passar uma função nula de cadeia de caracteres indica que a entidade de segurança pode ser um membro da função (ou nenhum funções de todos). Para a segurança declarativa, o mesmo resultado pode ser obtido omitindo uma ou outra propriedade. Por exemplo, o código a seguir usa PrincipalPermissionAttribute declarativa para indicar que uma entidade de segurança pode ter qualquer nome, mas deve ter a função da caixa.
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Role := "Teller")>