WindowsIdentity Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
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.
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.
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.
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.
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.