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
WindowsIdentity(IntPtr) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows especificado. |
WindowsIdentity(WindowsIdentity) |
Inicializa una nueva instancia de la clase WindowsIdentity mediante el objeto WindowsIdentity especificado. |
WindowsIdentity(String) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN). |
WindowsIdentity(IntPtr, String) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows y el tipo de autenticación que se hayan especificado. |
WindowsIdentity(SerializationInfo, StreamingContext) |
Obsoletos.
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante la información incluida en un flujo SerializationInfo. |
WindowsIdentity(String, String) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN) y el tipo de autenticación que se hayan especificado. |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows, el tipo de autenticación y el tipo de cuenta de Windows que se hayan especificado. |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows, el tipo de autenticación, el tipo de cuenta de Windows y el estado de autenticación que se hayan especificado. |
WindowsIdentity(IntPtr)
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante 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 del usuario en cuyo nombre se ejecuta el código.
Excepciones
userToken
es 0.
O bien
userToken
está duplicado y no es válido para la suplantación.
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 de la API LogonUser
de Windows.
userToken
Publique siempre mediante una llamada a la función de la API CloseHandle
de Windows. Para obtener más información sobre cómo llamar a código no administrado, consulte Consumo de funciones DLL no administradas.
Se aplica a
WindowsIdentity(WindowsIdentity)
Inicializa una nueva instancia de la clase WindowsIdentity mediante el 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
Objeto a partir del cual se construye la nueva instancia de WindowsIdentity.
Se aplica a
WindowsIdentity(String)
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN).
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 del usuario en cuyo nombre se ejecuta el código.
Excepciones
Windows ha devuelto el código de estado de Windows NT STATUS_ACCESS_DENIED.
No hay suficiente memoria disponible.
El autor de llamada no dispone de los permisos requeridos.
O bien
El equipo no se adjunta a un dominio Windows 2003 o dominio posterior.
O bien
El equipo no está ejecutando Windows 2003 o posterior.
O bien
El usuario no es un miembro del dominio al que el equipo está adjunto.
Comentarios
Un UPN tiene el formatonombre de dominio de nombre de usuario@.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 de la 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á pensado 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 clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows y el tipo de autenticación que se hayan 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 del usuario en cuyo nombre se ejecuta el código.
- type
- String
El tipo de autenticación utilizado para identificar al usuario (uso meramente informativo).
Excepciones
userToken
es 0.
O bien
userToken
está duplicado y no es válido para la suplantación.
Ejemplos
En el código siguiente se 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 es parte de un ejemplo más grande proporcionado para la clase WindowsIdentity.
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 Negotiate
AuthenticationType en en Windows Vista y versiones posteriores del sistema operativo Windows y 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 de la API LogonUser
de Windows.
userToken
Publique siempre mediante una llamada a la función de la API CloseHandle
de Windows. Para obtener más información sobre cómo llamar a código no administrado, consulte 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 clase WindowsIdentity para el usuario representado mediante la información incluida en un flujo 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
Objeto que contiene la información sobre la cuenta del usuario.
- context
- StreamingContext
Objeto que indica las características del flujo.
- Atributos
Excepciones
WindowsIdentity no se puede serializar entre los procesos.
Comentarios
Importante
Llamar a este método con datos que no son de confianza supone 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 clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN) y el tipo de autenticación que se hayan 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 del usuario en cuyo nombre se ejecuta el código.
- type
- String
El tipo de autenticación utilizado para identificar al usuario (uso meramente informativo).
Excepciones
Windows ha devuelto el código de estado de Windows NT STATUS_ACCESS_DENIED.
No hay suficiente memoria disponible.
El autor de llamada no dispone de los permisos requeridos.
O bien
El equipo no se adjunta a un dominio Windows 2003 o dominio posterior.
O bien
El equipo no está ejecutando Windows 2003 o posterior.
O bien
El usuario no es un miembro del dominio al que el equipo está adjunto.
Comentarios
El valor del type
parámetro se usa para establecer el AuthenticationType parámetro . Si type
es null
, el sistema de seguridad establece Negotiate
AuthenticationType en en Windows Vista y versiones posteriores del sistema operativo Windows y 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 de la 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á pensado 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 clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows, el tipo de autenticación y el tipo de cuenta de Windows que se hayan 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 del usuario en cuyo nombre se ejecuta el código.
- type
- String
El tipo de autenticación utilizado para identificar al usuario (uso meramente informativo).
- acctType
- WindowsAccountType
Uno de los valores de enumeración.
Excepciones
userToken
es 0.
O bien
userToken
está duplicado y no es válido para la suplantación.
Ejemplos
En el código siguiente se 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 es parte de un ejemplo más grande proporcionado para la clase WindowsIdentity.
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 Negotiate
AuthenticationType en en Windows Vista y versiones posteriores del sistema operativo Windows y 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 de la API LogonUser
de Windows.
userToken
Publique siempre mediante una llamada a la función de la API CloseHandle
de Windows. Para obtener más información sobre cómo llamar a código no administrado, consulte Consumo de funciones DLL no administradas.
Se aplica a
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows, el tipo de autenticación, el tipo de cuenta de Windows y el estado de autenticación que se hayan 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 del usuario en cuyo nombre se ejecuta el código.
- type
- String
El tipo de autenticación utilizado para identificar al usuario (uso meramente informativo).
- acctType
- WindowsAccountType
Uno de los valores de enumeración.
- isAuthenticated
- Boolean
true
para indicar que el usuario está autenticado; en caso contrario, false
.
Excepciones
userToken
es 0.
O bien
userToken
está duplicado y no es válido para la suplantación.
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 es parte de un ejemplo más grande proporcionado para la clase WindowsIdentity.
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 Negotiate
AuthenticationType en en Windows Vista y versiones posteriores del sistema operativo Windows y 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 de la API LogonUser
de Windows.
userToken
Publique siempre mediante una llamada a la función de la API CloseHandle
de Windows. Para obtener más información sobre cómo llamar a código no administrado, consulte Consumo de funciones DLL no administradas.