WindowsIdentity Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe WindowsIdentity.
Sobrecargas
WindowsIdentity(IntPtr) |
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows especificado. |
WindowsIdentity(WindowsIdentity) |
Inicializa uma nova instância da classe WindowsIdentity usando o objeto WindowsIdentity especificado. |
WindowsIdentity(String) |
Inicializa uma nova instância de WindowsIdentity classe do usuário representada pelo nome UPN especificado. |
WindowsIdentity(IntPtr, String) |
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows e tipo de autenticação especificados. |
WindowsIdentity(SerializationInfo, StreamingContext) |
Obsoleto.
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado por informações em um fluxo de SerializationInfo. |
WindowsIdentity(String, String) |
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo nome UPN e pelo tipo de autenticação especificado. |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows, o tipo de autenticação e o tipo de conta do Windows especificados. |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows especificado, o tipo de autenticação especificado, o tipo de conta do Windows especificado e o status de autenticação especificado. |
WindowsIdentity(IntPtr)
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do 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 de conta para o usuário em cujo nome o código está em execução.
Exceções
Comentários
A tabela a seguir mostra os valores de propriedade iniciais de uma instância do WindowsIdentity.
Propriedade | Valor inicial |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
Observação
Você pode recuperar o token representado userToken
chamando código não gerenciado, como a função de API LogonUser
do Windows. Sempre solte userToken
chamando a função de API CloseHandle
do Windows. Para obter mais informações sobre como chamar código não gerenciado, consulte Consumindo funções de DLL não gerenciadas.
Aplica-se a
WindowsIdentity(WindowsIdentity)
Inicializa uma nova instância da classe WindowsIdentity usando o objeto WindowsIdentity especificado.
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 do qual a nova instância de WindowsIdentity será construída.
Aplica-se a
WindowsIdentity(String)
Inicializa uma nova instância de WindowsIdentity classe do usuário representada pelo nome 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 usuário em cujo nome o código está em execução.
Exceções
O Windows retornou o código de status do Windows NT STATUS_ACCESS_DENIED.
Memória insuficiente.
O chamador não tem as permissões corretas.
- ou -
O computador não está conectado a um domínio do Windows 2003 ou posterior.
- ou -
O computador não está executando o Windows 2003 ou posterior.
- ou -
O usuário não é um membro do domínio a que o computador está conectado.
Comentários
Um UPN tem o nome de usuário de formatonome de domínio@.com, em outras palavras, um endereço de email. O UPN identificado em sUserPrincipalName
é usado para recuperar um token para esse usuário por meio da função da API LsaLogonUser
do Windows. Por sua vez, esse token é usado para identificar o usuário. Uma exceção pode ser retornada devido à incapacidade de fazer logon usando o UPN fornecido.
Observação
Esse construtor destina-se a ser usado somente em computadores ingressados no Windows Server 2003 ou em domínios posteriores. Uma exceção é gerada para tipos de domínio anteriores. Essa restrição ocorre devido ao fato de que esse construtor usa a estrutura KERB_S4U_LOGON, que foi introduzida pela primeira vez no Windows Server 2003. Além disso, esse construtor requer acesso de leitura ao atributo TGGAU (token-groups-global-and-universal) na conta de usuário de destino.
Aplica-se a
WindowsIdentity(IntPtr, String)
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows e tipo de autenticação especificados.
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 de conta para o usuário em cujo nome o código está em execução.
- type
- String
(Uso informativo apenas.) O tipo de autenticação usado para identificar o usuário.
Exceções
Exemplos
O código a seguir mostra o uso do WindowsIdentity construtor para criar uma nova instância da WindowsIdentity classe para o usuário representado pelo token de conta do Windows especificado e o 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
Comentários
A tabela a seguir mostra os valores de propriedade iniciais de uma instância do WindowsIdentity.
Propriedade | 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 como Negotiate
no Windows Vista e versões posteriores do sistema operacional Windows e para Kerberos
em versões anteriores do sistema operacional Windows. O sistema de segurança não usa esse valor; é apenas para uso informativo.
Observação
Você pode recuperar o token representado userToken
chamando código não gerenciado, como a função de API LogonUser
do Windows. Sempre solte userToken
chamando a função de API CloseHandle
do Windows. Para obter mais informações sobre como chamar código não gerenciado, consulte Consumindo funções de DLL não gerenciadas.
Aplica-se a
WindowsIdentity(SerializationInfo, StreamingContext)
Cuidado
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado por informações em um fluxo de SerializationInfo.
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}")]
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
[<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
Public Sub New (info As SerializationInfo, context As StreamingContext)
Parâmetros
- info
- SerializationInfo
O objeto que contém as informações da conta do usuário.
- context
- StreamingContext
Um objeto que indica as características de fluxo.
- Atributos
Exceções
Uma WindowsIdentity não pode ser serializada entre processos.
Comentários
Importante
Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.
Aplica-se a
WindowsIdentity(String, String)
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo nome UPN 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 usuário em cujo nome o código está em execução.
- type
- String
(Uso informativo apenas.) O tipo de autenticação usado para identificar o usuário.
Exceções
O Windows retornou o código de status do Windows NT STATUS_ACCESS_DENIED.
Memória insuficiente.
O chamador não tem as permissões corretas.
- ou -
O computador não está conectado a um domínio do Windows 2003 ou posterior.
- ou -
O computador não está executando o Windows 2003 ou posterior.
- ou -
O usuário não é um membro do domínio a que o computador está conectado.
Comentários
O valor do type
parâmetro é usado para definir o AuthenticationType parâmetro . Se type
for null
, o sistema de segurança define AuthenticationType como Negotiate
no Windows Vista e versões posteriores do sistema operacional Windows e para Kerberos
em versões anteriores do sistema operacional Windows. O sistema de segurança não usa esse valor; é apenas para uso informativo.
O UPN identificado em sUserPrincipalName
é usado para recuperar um token para esse usuário por meio da função da API LsaLogonUser
do Windows. Por sua vez, esse token é usado para identificar o usuário. Uma exceção pode ser retornada devido à incapacidade de fazer logon usando o UPN fornecido.
Observação
Esse construtor destina-se a ser usado somente em computadores ingressados no Windows Server 2003 ou em domínios posteriores. Uma exceção é gerada para tipos de domínio anteriores. Essa restrição ocorre devido ao fato de que esse construtor usa a estrutura KERB_S4U_LOGON, que foi introduzida pela primeira vez no Windows Server 2003. Além disso, esse construtor requer acesso de leitura ao atributo TGGAU (token-groups-global-and-universal) na conta de usuário de destino.
Aplica-se a
WindowsIdentity(IntPtr, String, WindowsAccountType)
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows, o tipo de autenticação e o tipo de conta do Windows especificados.
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 de conta para o usuário em cujo nome o código está em execução.
- type
- String
(Uso informativo apenas.) O tipo de autenticação usado para identificar o usuário.
- acctType
- WindowsAccountType
Um dos valores de enumeração.
Exceções
Exemplos
O código a seguir mostra o uso do WindowsIdentity construtor para criar uma nova instância da WindowsIdentity classe para o usuário representado pelo token de conta do Windows especificado, o tipo de autenticação especificado e o tipo de conta do 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
Comentários
A tabela a seguir mostra os valores de propriedade iniciais de uma instância do WindowsIdentity.
Propriedade | 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 como Negotiate
no Windows Vista e versões posteriores do sistema operacional Windows e para Kerberos
em versões anteriores do sistema operacional Windows. O sistema de segurança não usa esse valor; é apenas para uso informativo.
Observação
Você pode recuperar o token representado userToken
chamando código não gerenciado, como a função de API LogonUser
do Windows. Sempre solte userToken
chamando a função de API CloseHandle
do Windows. Para obter mais informações sobre como chamar código não gerenciado, consulte Consumindo funções de DLL não gerenciadas.
Aplica-se a
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Inicializa uma nova instância da classe WindowsIdentity para o usuário representado pelo token de conta do Windows especificado, o tipo de autenticação especificado, o tipo de conta do Windows especificado e o status 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 de conta para o usuário em cujo nome o código está em execução.
- type
- String
(Uso informativo apenas.) O tipo de autenticação usado para identificar o usuário.
- acctType
- WindowsAccountType
Um dos valores de enumeração.
- isAuthenticated
- Boolean
true
para indicar que o usuário está autenticado, caso contrário, false
.
Exceções
Exemplos
O código a seguir mostra o uso do WindowsIdentity construtor para criar uma nova instância da WindowsIdentity classe para o usuário representado pelo token de conta do Windows especificado, o tipo de autenticação especificado, o tipo de conta do Windows especificado e o status 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
Comentários
O valor do type
parâmetro é usado para definir o AuthenticationType parâmetro . Se type
for null
, o sistema de segurança define AuthenticationType como Negotiate
no Windows Vista e versões posteriores do sistema operacional Windows e para Kerberos
em versões anteriores do sistema operacional Windows. O sistema de segurança não usa esse valor; é apenas para uso informativo.
Você pode recuperar o token representado userToken
chamando código não gerenciado, como a função de API LogonUser
do Windows. Sempre solte userToken
chamando a função de API CloseHandle
do Windows. Para obter mais informações sobre como chamar código não gerenciado, consulte Consumindo funções de DLL não gerenciadas.