WindowsIdentity Construtores

Definição

Inicializa uma nova instância da WindowsIdentity classe.

Sobrecargas

Name Description
WindowsIdentity(IntPtr)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador representado pelo token de conta Windows especificado.

WindowsIdentity(WindowsIdentity)

Inicializa uma nova instância da WindowsIdentity classe usando o objeto especificado WindowsIdentity .

WindowsIdentity(String)

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado pelo Nome Principal do Utilizador (UPN) especificado.

WindowsIdentity(IntPtr, String)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador, representada pelo token de conta Windows especificado e pelo tipo de autenticação especificado.

WindowsIdentity(SerializationInfo, StreamingContext)
Obsoleto.

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado por informação num SerializationInfo fluxo.

WindowsIdentity(String, String)

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado pelo Nome Principal do Utilizador (UPN) especificado e pelo tipo de autenticação especificado.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador, representada pelo token de conta Windows especificado, pelo tipo de autenticação especificado e pelo tipo de conta Windows especificado.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador representada pelo token de conta Windows especificado, o tipo de autenticação especificado, o tipo de conta Windows especificado e o estado de autenticação especificado.

WindowsIdentity(IntPtr)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador representado pelo token de conta Windows especificado.

public:
 WindowsIdentity(IntPtr userToken);
public WindowsIdentity(IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)

Parâmetros

userToken
IntPtr

nativeint

O token da conta para o utilizador em nome do qual o código está a correr.

Exceções

userToken é 0.

-ou-

userToken é duplicado e inválido para usuportação de personificação.

O chamador não tem as permissões corretas.

-ou-

Ocorreu um erro Win32.

Observações

A tabela seguinte mostra os valores iniciais das propriedades para uma instância de WindowsIdentity.

Property Valor inicial
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Note

Pode recuperar o token representado por userToken chamando código não gerido, como a Windows API LogonUser função. Liberte sempre o userToken chamando a função da API Windows CloseHandle. Para mais informações sobre como chamar código não gerido, consulte Consuming Unmanaged DLL Functions.

Aplica-se a

WindowsIdentity(WindowsIdentity)

Inicializa uma nova instância da WindowsIdentity classe usando o objeto especificado WindowsIdentity .

protected:
 WindowsIdentity(System::Security::Principal::WindowsIdentity ^ identity);
protected WindowsIdentity(System.Security.Principal.WindowsIdentity identity);
new System.Security.Principal.WindowsIdentity : System.Security.Principal.WindowsIdentity -> System.Security.Principal.WindowsIdentity
Protected Sub New (identity As WindowsIdentity)

Parâmetros

identity
WindowsIdentity

O objeto a partir do qual construir a nova instância de WindowsIdentity.

Aplica-se a

WindowsIdentity(String)

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado pelo Nome Principal do Utilizador (UPN) especificado.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName);
public WindowsIdentity(string sUserPrincipalName);
new System.Security.Principal.WindowsIdentity : string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String)

Parâmetros

sUserPrincipalName
String

O UPN para o utilizador em nome do qual o código está a correr.

Exceções

Windows devolveu o código de estado NT Windows STATUS_ACCESS_DENIED.

Há memória insuficiente disponível.

O chamador não tem as permissões corretas.

-ou-

O computador não está ligado a um domínio Windows 2003 ou posterior.

-ou-

O computador não está a correr o Windows 2003 ou versões posteriores.

-ou-

O utilizador não é membro do domínio ao qual o computador está ligado.

Observações

Uma UPN tem o formato nome @nome de domínio.com ou seja, um endereço de email. O UPN identificado em sUserPrincipalName é usado para recuperar um token para esse utilizador através da função API Windows LsaLogonUser. Por sua vez, esse token é usado para identificar o utilizador. Uma exceção pode ser devolvida devido à impossibilidade de iniciar sessão usando o UPN fornecido.

Note

Este construtor destina-se apenas a ser usado em computadores ligados a domínios do Windows Server 2003 ou posteriores. É lançada uma exceção para tipos de domínio anteriores. Esta restrição deve-se ao facto de este construtor usar a estrutura KERB_S4U_LOGON, que foi introduzida pela primeira vez em Windows Server 2003. Além disso, este construtor requer acesso de leitura ao atributo token-groups-global-and-universal (TGGAU) na conta de utilizador alvo.

Aplica-se a

WindowsIdentity(IntPtr, String)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador, representada pelo token de conta Windows especificado e pelo tipo de autenticação especificado.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type);
public WindowsIdentity(IntPtr userToken, string type);
new System.Security.Principal.WindowsIdentity : nativeint * string -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String)

Parâmetros

userToken
IntPtr

nativeint

O token da conta para o utilizador em nome do qual o código está a correr.

type
String

(Apenas para uso informativo.) O tipo de autenticação usado para identificar o utilizador.

Exceções

userToken é 0.

-ou-

userToken é duplicado e inválido para usuportação de personificação.

O chamador não tem as permissões corretas.

-ou-

Ocorreu um erro Win32.

Exemplos

O código seguinte mostra a utilização do construtor WindowsIdentity para criar uma nova instância da classe WindowsIdentity para o utilizador representado pelo token de conta Windows especificado e pelo tipo de autenticação especificado. Este exemplo de código faz parte de um exemplo maior fornecido para a WindowsIdentity classe.

void IntPtrStringConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token 
   // and the specified authentication type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPtrStringConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token 
    // and the specified authentication type.
    string authenticationType = "WindowsAuthentication";
    WindowsIdentity windowsIdentity =
                    new WindowsIdentity(logonToken, authenticationType);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token 
    ' and the specified authentication type
    Dim authenticationType = "WindowsAuthentication"
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Observações

A tabela seguinte mostra os valores iniciais das propriedades para uma instância de WindowsIdentity.

Property Valor inicial
WindowsAccountType Normal
IsAuthenticated false

O valor do type parâmetro é usado para definir o AuthenticationType parâmetro. Se type for null, o sistema de segurança define AuthenticationType para Negotiate em versões Windows Vista e posteriores do sistema operativo Windows, e para Kerberos em versões anteriores do sistema operativo Windows. O sistema de segurança não utiliza este valor; É apenas para uso informativo.

Note

Pode recuperar o token representado por userToken chamando código não gerido, como a Windows API LogonUser função. Liberte sempre o userToken chamando a função da API Windows CloseHandle. Para mais informações sobre como chamar código não gerido, consulte Consuming Unmanaged DLL Functions.

Aplica-se a

WindowsIdentity(SerializationInfo, StreamingContext)

Atenção

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado por informação num SerializationInfo fluxo.

public:
 WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
Public Sub New (info As SerializationInfo, context As StreamingContext)

Parâmetros

info
SerializationInfo

O objeto que contém a informação da conta do utilizador.

context
StreamingContext

Um objeto que indica as características do riacho.

Atributos

Exceções

A WindowsIdentity não pode ser serializado entre processos.

O chamador não tem as permissões corretas.

-ou-

Ocorreu um erro Win32.

Observações

Importante

Chamar este método com dados não confiáveis é um risco de segurança. Chame este método apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Aplica-se a

WindowsIdentity(String, String)

Inicializa uma nova instância da WindowsIdentity classe para o utilizador representado pelo Nome Principal do Utilizador (UPN) especificado e pelo tipo de autenticação especificado.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName, System::String ^ type);
public WindowsIdentity(string sUserPrincipalName, string type);
new System.Security.Principal.WindowsIdentity : string * string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String, type As String)

Parâmetros

sUserPrincipalName
String

O UPN para o utilizador em nome do qual o código está a correr.

type
String

(Apenas para uso informativo.) O tipo de autenticação usado para identificar o utilizador.

Exceções

Windows devolveu o código de estado NT Windows STATUS_ACCESS_DENIED.

Há memória insuficiente disponível.

O chamador não tem as permissões corretas.

-ou-

O computador não está ligado a um domínio Windows 2003 ou posterior.

-ou-

O computador não está a correr o Windows 2003 ou versões posteriores.

-ou-

O utilizador não é membro do domínio ao qual o computador está ligado.

Observações

O valor do type parâmetro é usado para definir o AuthenticationType parâmetro. Se type for null, o sistema de segurança define AuthenticationType para Negotiate em versões Windows Vista e posteriores do sistema operativo Windows, e para Kerberos em versões anteriores do sistema operativo Windows. O sistema de segurança não utiliza este valor; É apenas para uso informativo.

O UPN identificado em sUserPrincipalName é usado para recuperar um token para esse utilizador através da função API Windows LsaLogonUser. Por sua vez, esse token é usado para identificar o utilizador. Uma exceção pode ser devolvida devido à impossibilidade de iniciar sessão usando o UPN fornecido.

Note

Este construtor destina-se apenas a ser usado em computadores ligados a domínios do Windows Server 2003 ou posteriores. É lançada uma exceção para tipos de domínio anteriores. Esta restrição deve-se ao facto de este construtor usar a estrutura KERB_S4U_LOGON, que foi introduzida pela primeira vez em Windows Server 2003. Além disso, este construtor requer acesso de leitura ao atributo token-groups-global-and-universal (TGGAU) na conta de utilizador alvo.

Aplica-se a

WindowsIdentity(IntPtr, String, WindowsAccountType)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador, representada pelo token de conta Windows especificado, pelo tipo de autenticação especificado e pelo tipo de conta Windows especificado.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType);
public WindowsIdentity(IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType)

Parâmetros

userToken
IntPtr

nativeint

O token da conta para o utilizador em nome do qual o código está a correr.

type
String

(Apenas para uso informativo.) O tipo de autenticação usado para identificar o utilizador.

acctType
WindowsAccountType

Um dos valores de enumeração.

Exceções

userToken é 0.

-ou-

userToken é duplicado e inválido para usuportação de personificação.

O chamador não tem as permissões corretas.

-ou-

Ocorreu um erro Win32.

Exemplos

O código seguinte mostra a utilização do construtor WindowsIdentity para criar uma nova instância da classe WindowsIdentity para o utilizador representado pelo token de conta Windows especificado, pelo tipo de autenticação especificado e pelo tipo de conta Windows especificado. Este exemplo de código faz parte de um exemplo maior fornecido para a WindowsIdentity classe.

void IntPtrStringTypeConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type and Windows account type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPtrStringTypeConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, and Windows account type.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    WindowsIdentity windowsIdentity =
        new WindowsIdentity(logonToken, authenticationType, guestAccount);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringTypeConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type and Windows account type.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType, guestAccount)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Observações

A tabela seguinte mostra os valores iniciais das propriedades para uma instância de WindowsIdentity.

Property Valor Inicial
IsAuthenticated false

O valor do type parâmetro é usado para definir o AuthenticationType parâmetro. Se type for null, o sistema de segurança define AuthenticationType para Negotiate em versões Windows Vista e posteriores do sistema operativo Windows, e para Kerberos em versões anteriores do sistema operativo Windows. O sistema de segurança não utiliza este valor; É apenas para uso informativo.

Note

Pode recuperar o token representado por userToken chamando código não gerido, como a Windows API LogonUser função. Liberte sempre o userToken chamando a função da API Windows CloseHandle. Para mais informações sobre como chamar código não gerido, consulte Consuming Unmanaged DLL Functions.

Aplica-se a

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Inicializa uma nova instância da classe WindowsIdentity para o utilizador representada pelo token de conta Windows especificado, o tipo de autenticação especificado, o tipo de conta Windows especificado e o estado de autenticação especificado.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType, bool isAuthenticated);
public WindowsIdentity(IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType * bool -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType, isAuthenticated As Boolean)

Parâmetros

userToken
IntPtr

nativeint

O token da conta para o utilizador em nome do qual o código está a correr.

type
String

(Apenas para uso informativo.) O tipo de autenticação usado para identificar o utilizador.

acctType
WindowsAccountType

Um dos valores de enumeração.

isAuthenticated
Boolean

true para indicar que o utilizador está autenticado; caso contrário, false.

Exceções

userToken é 0.

-ou-

userToken é duplicado e inválido para usuportação de personificação.

O chamador não tem as permissões corretas.

-ou-

Ocorreu um erro Win32.

Exemplos

O código seguinte mostra o uso do construtor WindowsIdentity para criar uma nova instância da classe WindowsIdentity para o utilizador representado pelo token de conta Windows especificado, pelo tipo de autenticação especificado, pelo tipo de conta Windows especificado e pelo estado de autenticação especificado. Este exemplo de código faz parte de um exemplo maior fornecido para a WindowsIdentity classe.

void IntPrtStringTypeBoolConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type, Windows account type, and
   // authentication flag.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   bool isAuthenticated = true;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount,isAuthenticated );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPrtStringTypeBoolConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, Windows account type, and
    // authentication flag.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    bool isAuthenticated = true;
    WindowsIdentity windowsIdentity = new WindowsIdentity(
        logonToken, authenticationType, guestAccount, isAuthenticated);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPrtStringTypeBoolConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type, Windows account type, and
    ' authentication flag.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim isAuthenticated As Boolean = True
    Dim windowsIdentity As New WindowsIdentity( _
        logonToken, authenticationType, guestAccount, isAuthenticated)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Observações

O valor do type parâmetro é usado para definir o AuthenticationType parâmetro. Se type for null, o sistema de segurança define AuthenticationType para Negotiate em versões Windows Vista e posteriores do sistema operativo Windows, e para Kerberos em versões anteriores do sistema operativo Windows. O sistema de segurança não utiliza este valor; É apenas para uso informativo.

Pode recuperar o token representado por userToken chamando código não gerido, como a Windows API LogonUser função. Liberte sempre o userToken chamando a função da API Windows CloseHandle. Para mais informações sobre como chamar código não gerido, consulte Consuming Unmanaged DLL Functions.

Aplica-se a