WindowsIdentity Constructores
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inicializa una nueva instancia de la clase WindowsIdentity.
Sobrecargas
| Nombre | Description |
|---|---|
| WindowsIdentity(IntPtr) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado. |
| WindowsIdentity(WindowsIdentity) |
Inicializa una nueva instancia de la WindowsIdentity clase mediante el objeto especificado WindowsIdentity . |
| WindowsIdentity(String) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el nombre principal de usuario (UPN) especificado. |
| WindowsIdentity(IntPtr, String) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado y el tipo de autenticación especificado. |
| WindowsIdentity(SerializationInfo, StreamingContext) |
Obsoletos.
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por información en una SerializationInfo secuencia. |
| WindowsIdentity(String, String) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el nombre principal de usuario (UPN) especificado y el tipo de autenticación especificado. |
| WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado y el tipo de cuenta de Windows especificado. |
| WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado, el tipo de cuenta de Windows especificado y el estado de autenticación especificado. |
WindowsIdentity(IntPtr)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de 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
Token de cuenta para el usuario en cuyo nombre se ejecuta el código.
Excepciones
Comentarios
En la tabla siguiente se muestran los valores de propiedad iniciales de una instancia de WindowsIdentity.
| Propiedad | Valor inicial |
|---|---|
| AuthenticationType | Negotiate |
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Nota:
Puede recuperar el token representado mediante userToken una llamada a código no administrado, como la función api LogonUser de Windows. Libere userToken siempre mediante una llamada a la función api CloseHandle de Windows. Para obtener más información sobre cómo llamar a código no administrado, vea Consumo de funciones DLL no administradas.
Se aplica a
WindowsIdentity(WindowsIdentity)
Inicializa una nueva instancia de la WindowsIdentity clase mediante el 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
Objeto desde el que se va a construir la nueva instancia de WindowsIdentity.
Se aplica a
WindowsIdentity(String)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el nombre principal de usuario (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
UpN para el usuario en cuyo nombre se ejecuta el código.
Excepciones
Windows devolvió el código de estado de Windows NT STATUS_ACCESS_DENIED.
No hay memoria suficiente disponible.
El autor de la llamada no tiene los permisos correctos.
O bien
El equipo no está conectado a un dominio de Windows 2003 o posterior.
O bien
El equipo no ejecuta Windows 2003 o posterior.
O bien
El usuario no es miembro del dominio al que está asociado el equipo.
Comentarios
Un UPN tiene el formato username@domainname.com, es decir, una dirección de correo electrónico. El UPN identificado en sUserPrincipalName se usa para recuperar un token para ese usuario a través de la función api LsaLogonUser de Windows. A su vez, ese token se usa para identificar al usuario. Es posible que se devuelva una excepción debido a la incapacidad de iniciar sesión con el UPN proporcionado.
Nota:
Este constructor está diseñado para su uso solo en equipos unidos a dominios de Windows Server 2003 o posteriores. Se produce una excepción para los tipos de dominio anteriores. Esta restricción se debe al hecho de que este constructor usa la estructura KERB_S4U_LOGON, que se introdujo por primera vez en Windows Server 2003. Además, este constructor requiere acceso de lectura al atributo token-groups-global-and-universal (TGGAU) en la cuenta de usuario de destino.
Se aplica a
WindowsIdentity(IntPtr, String)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado y el tipo de autenticación 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
Token de cuenta para el usuario en cuyo nombre se ejecuta el código.
- type
- String
(Solo uso informativo). Tipo de autenticación que se usa para identificar al usuario.
Excepciones
Ejemplos
El código siguiente muestra el uso del WindowsIdentity constructor para crear una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado y el tipo de autenticación especificado. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la WindowsIdentity clase .
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
Comentarios
En la tabla siguiente se muestran los valores de propiedad iniciales de una instancia de WindowsIdentity.
| Propiedad | Valor inicial |
|---|---|
| WindowsAccountType | Normal |
| IsAuthenticated | false |
El valor del type parámetro se usa para establecer el AuthenticationType parámetro . Si type es null, el sistema de seguridad establece AuthenticationType en Negotiate en Windows Vista y versiones posteriores del sistema operativo Windows y en Kerberos en versiones anteriores del sistema operativo Windows. El sistema de seguridad no utiliza este valor; es solo para uso informativo.
Nota:
Puede recuperar el token representado mediante userToken una llamada a código no administrado, como la función api LogonUser de Windows. Libere userToken siempre mediante una llamada a la función api CloseHandle de Windows. Para obtener más información sobre cómo llamar a código no administrado, vea Consumo de funciones DLL no administradas.
Se aplica a
WindowsIdentity(SerializationInfo, StreamingContext)
Precaución
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por información en una SerializationInfo secuencia.
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
Objeto que contiene la información de la cuenta para el usuario.
- context
- StreamingContext
Objeto que indica las características de la secuencia.
- Atributos
Excepciones
No WindowsIdentity se puede serializar entre procesos.
Comentarios
Importante
Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Se aplica a
WindowsIdentity(String, String)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el nombre principal de usuario (UPN) especificado y el tipo de autenticación 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
UpN para el usuario en cuyo nombre se ejecuta el código.
- type
- String
(Solo uso informativo). Tipo de autenticación que se usa para identificar al usuario.
Excepciones
Windows devolvió el código de estado de Windows NT STATUS_ACCESS_DENIED.
No hay memoria suficiente disponible.
El autor de la llamada no tiene los permisos correctos.
O bien
El equipo no está conectado a un dominio de Windows 2003 o posterior.
O bien
El equipo no ejecuta Windows 2003 o posterior.
O bien
El usuario no es miembro del dominio al que está asociado el equipo.
Comentarios
El valor del type parámetro se usa para establecer el AuthenticationType parámetro . Si type es null, el sistema de seguridad establece AuthenticationType en Negotiate en Windows Vista y versiones posteriores del sistema operativo Windows y en Kerberos en versiones anteriores del sistema operativo Windows. El sistema de seguridad no utiliza este valor; es solo para uso informativo.
El UPN identificado en sUserPrincipalName se usa para recuperar un token para ese usuario a través de la función api LsaLogonUser de Windows. A su vez, ese token se usa para identificar al usuario. Es posible que se devuelva una excepción debido a la incapacidad de iniciar sesión con el UPN proporcionado.
Nota:
Este constructor está diseñado para su uso solo en equipos unidos a dominios de Windows Server 2003 o posteriores. Se produce una excepción para los tipos de dominio anteriores. Esta restricción se debe al hecho de que este constructor usa la estructura KERB_S4U_LOGON, que se introdujo por primera vez en Windows Server 2003. Además, este constructor requiere acceso de lectura al atributo token-groups-global-and-universal (TGGAU) en la cuenta de usuario de destino.
Se aplica a
WindowsIdentity(IntPtr, String, WindowsAccountType)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado y el tipo de cuenta de 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
Token de cuenta para el usuario en cuyo nombre se ejecuta el código.
- type
- String
(Solo uso informativo). Tipo de autenticación que se usa para identificar al usuario.
- acctType
- WindowsAccountType
Uno de los valores de enumeración.
Excepciones
Ejemplos
El código siguiente muestra el uso del WindowsIdentity constructor para crear una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado y el tipo de cuenta de Windows especificado. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la WindowsIdentity clase .
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
Comentarios
En la tabla siguiente se muestran los valores de propiedad iniciales de una instancia de WindowsIdentity.
| Propiedad | Valor inicial |
|---|---|
| IsAuthenticated | false |
El valor del type parámetro se usa para establecer el AuthenticationType parámetro . Si type es null, el sistema de seguridad establece AuthenticationType en Negotiate en Windows Vista y versiones posteriores del sistema operativo Windows y en Kerberos en versiones anteriores del sistema operativo Windows. El sistema de seguridad no utiliza este valor; es solo para uso informativo.
Nota:
Puede recuperar el token representado mediante userToken una llamada a código no administrado, como la función api LogonUser de Windows. Libere userToken siempre mediante una llamada a la función api CloseHandle de Windows. Para obtener más información sobre cómo llamar a código no administrado, vea Consumo de funciones DLL no administradas.
Se aplica a
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Inicializa una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado, el tipo de cuenta de Windows especificado y el estado de autenticación 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
Token de cuenta para el usuario en cuyo nombre se ejecuta el código.
- type
- String
(Solo uso informativo). Tipo de autenticación que se usa para identificar al usuario.
- acctType
- WindowsAccountType
Uno de los valores de enumeración.
- isAuthenticated
- Boolean
true para indicar que el usuario está autenticado; de lo contrario, false.
Excepciones
Ejemplos
El código siguiente muestra el uso del WindowsIdentity constructor para crear una nueva instancia de la WindowsIdentity clase para el usuario representado por el token de cuenta de Windows especificado, el tipo de autenticación especificado, el tipo de cuenta de Windows especificado y el estado de autenticación especificado. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la WindowsIdentity clase .
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
Comentarios
El valor del type parámetro se usa para establecer el AuthenticationType parámetro . Si type es null, el sistema de seguridad establece AuthenticationType en Negotiate en Windows Vista y versiones posteriores del sistema operativo Windows y en Kerberos en versiones anteriores del sistema operativo Windows. El sistema de seguridad no utiliza este valor; es solo para uso informativo.
Puede recuperar el token representado mediante userToken una llamada a código no administrado, como la función api LogonUser de Windows. Libere userToken siempre mediante una llamada a la función api CloseHandle de Windows. Para obtener más información sobre cómo llamar a código no administrado, vea Consumo de funciones DLL no administradas.