Compartilhar via


Como: Criar Objetos GenericPrincipal e GenericIdentity

Você pode usar o GenericIdentity classe em conjunto com o GenericPrincipal classe para criar um esquema de autorização que existe independente de um domínio do Windows NT ou Windows 2000.

Para criar um objeto GenericPrincipal

  1. Criar uma nova instância da classe de identidade e inicializar-lo com o nome você deseja que ele Isenção a tecla.O código a seguir cria um novo GenericIdentity objeto e o inicializa com o nome de MyUser.

    Dim MyIdentity As New GenericIdentity("MyUser")
    
    GenericIdentity MyIdentity = new GenericIdentity("MyUser");
    
  2. Criar uma nova instância do Genérico entidade de segurança classe e inicializá-lo com o criado anteriormente GenericIdentity objeto e uma matriz de seqüências de caracteres que representam funções que deseja ter associadas a isso entidade de segurança.O exemplo de código a seguir especifica uma matriz de seqüências de caracteres que representam uma função do administrador e uma função de usuário.The GenericPrincipal , em seguida, é inicializada com o anterior GenericIdentity e a matriz de seqüência de caracteres.

    Dim MyStringArray As String() = {"Manager", "Teller"}
    DIm MyPrincipal As New GenericPrincipal(MyIdentity, MyStringArray)
    
    String[] MyStringArray = {"Manager", "Teller"};
    GenericPrincipal MyPrincipal = new GenericPrincipal(MyIdentity, MyStringArray);
    
  3. Use o seguinte código para anexar o objeto corrente thread.Isso é útil em situações onde a entidade de segurança deve ser validada várias vezes, devem ser validado por Outros código em execução em seu aplicativo ou deve ser validada por um PrincipalPermission objeto. Você ainda pode executar validação baseada em função no objeto entidade de segurança de segurança sem anexá-lo para o segmento.Para obter mais informações, consulte Substituindo um objeto entidade de segurança de segurança.

    Thread.CurrentPrincipal = MyPrincipal
    
    Thread.CurrentPrincipal = MyPrincipal;
    

Exemplo

O exemplo de código a seguir demonstra como criar uma instância de um GenericPrincipal and a GenericIdentity.Esse código exibe os valores desses objetos no console.

Imports System
Imports System.Security.Principal
Imports System.Threading

Public Class Class1
    
    Public Shared Sub Main()
        ' Create generic identity.
        Dim MyIdentity As New GenericIdentity("MyIdentity")
        
        ' Create generic principal.
        Dim MyStringArray As String() =  {"Manager", "Teller"}
        Dim MyPrincipal As New GenericPrincipal(MyIdentity, MyStringArray)
        
        ' Attach the principal to the current thread.
        ' This is not required unless repeated validation must occur,
        ' other code in your application must validate, or the 
        ' PrincipalPermisson object is used. 
        Thread.CurrentPrincipal = MyPrincipal
        
        ' Print values to the console.
        Dim Name As String = MyPrincipal.Identity.Name
        Dim Auth As Boolean = MyPrincipal.Identity.IsAuthenticated
        Dim IsInRole As Boolean = MyPrincipal.IsInRole("Manager")
        
        Console.WriteLine("The Name is: {0}", Name)
        Console.WriteLine("The IsAuthenticated is: {0}", Auth)
        Console.WriteLine("Is this a Manager? {0}", IsInRole)
        
    End Sub
    
End Class
using System;
using System.Security.Principal;
using System.Threading;

public class Class1
{
    public static int Main(string[] args)
    {
    // Create generic identity.
    GenericIdentity MyIdentity = new GenericIdentity("MyIdentity");

    // Create generic principal.
    String[] MyStringArray = {"Manager", "Teller"};
    GenericPrincipal MyPrincipal = 
        new GenericPrincipal(MyIdentity, MyStringArray);

    // Attach the principal to the current thread.
    // This is not required unless repeated validation must occur,
    // other code in your application must validate, or the 
    // PrincipalPermisson object is used. 
    Thread.CurrentPrincipal = MyPrincipal;

    // Print values to the console.
    String Name =  MyPrincipal.Identity.Name;
    bool Auth =  MyPrincipal.Identity.IsAuthenticated; 
    bool IsInRole =  MyPrincipal.IsInRole("Manager");

    Console.WriteLine("The Name is: {0}", Name);
    Console.WriteLine("The IsAuthenticated is: {0}", Auth);
    Console.WriteLine("Is this a Manager? {0}", IsInRole);

    return 0;
    }
}

Quando executado, o aplicativo exibe saída similar à seguinte.

The Name is: MyIdentity
The IsAuthenticated is: True
Is this a Manager? True

Consulte também

Conceitos

Substituindo um objeto entidade de segurança de segurança

entidade de segurança de segurança e objetos de identidade

Referência

GenericIdentity

GenericPrincipal

PrincipalPermission