Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase WindowsIdentity

 

Publicado: octubre de 2016

Representa un usuario de Windows.

Espacio de nombres:   System.Security.Principal
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Security.Claims.ClaimsIdentity
    System.Security.Principal.WindowsIdentity

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class WindowsIdentity : ClaimsIdentity, ISerializable, 
	IDeserializationCallback, IDisposable

NombreDescripción
System_CAPS_pubmethodWindowsIdentity(IntPtr)

Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows especificado.

System_CAPS_pubmethodWindowsIdentity(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.

System_CAPS_pubmethodWindowsIdentity(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.

System_CAPS_pubmethodWindowsIdentity(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.

System_CAPS_pubmethodWindowsIdentity(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante la información incluida en un flujo SerializationInfo.

System_CAPS_pubmethodWindowsIdentity(String)

Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN).

System_CAPS_pubmethodWindowsIdentity(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.

System_CAPS_protmethodWindowsIdentity(WindowsIdentity)

Inicializa una nueva instancia de la clase WindowsIdentity mediante el objeto WindowsIdentity especificado.

NombreDescripción
System_CAPS_pubpropertyAccessToken

Obtiene este objeto SafeAccessTokenHandle para esta instancia WindowsIdentity.

System_CAPS_pubpropertyActor

Obtiene o establece la identidad de la entidad que realiza la llamada que se concedió derechos de delegación.(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyAuthenticationType

Obtiene el tipo de autenticación que se usa para identificar al usuario.(Invalida ClaimsIdentity.AuthenticationType).

System_CAPS_pubpropertyBootstrapContext

Obtiene o establece el token que se usó para crear esta identidad de notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyClaims

Obtiene todas las notificaciones para el usuario representado por esta identidad de Windows.(Invalida ClaimsIdentity.Claims).

System_CAPS_protpropertyCustomSerializationData

(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyDeviceClaims

Obtiene las notificaciones que tienen la clave de la propiedad ClaimTypes.WindowsDeviceClaim.

System_CAPS_pubpropertyGroups

Obtiene los grupos a los que pertenece el usuario de Windows actual.

System_CAPS_pubpropertyImpersonationLevel

Obtiene el nivel de suplantación del usuario.

System_CAPS_pubpropertyIsAnonymous

Obtiene un valor que indica si el sistema identifica la cuenta de usuario como cuenta anónima.

System_CAPS_pubpropertyIsAuthenticated

Obtiene un valor que indica si Windows ha autenticado al usuario.(Invalida ClaimsIdentity.IsAuthenticated).

System_CAPS_pubpropertyIsGuest

Obtiene un valor que indica si el sistema identifica la cuenta de usuario como cuenta Guest.

System_CAPS_pubpropertyIsSystem

Obtiene un valor que indica si el sistema identifica la cuenta de usuario como cuenta System.

System_CAPS_pubpropertyLabel

Obtiene o establece la etiqueta para esta identidad de notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyName

Obtiene el nombre de inicio de sesión de Windows del usuario.(Invalida ClaimsIdentity.Name).

System_CAPS_pubpropertyNameClaimType

Obtiene el tipo de notificación que se usa para determinar las notificaciones que proporcionan el valor de la Name de esta propiedad de identidad basada en notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyOwner

Obtiene el identificador de seguridad (SID) del propietario del token.

System_CAPS_pubpropertyRoleClaimType

Obtiene el tipo de notificación que se interpretará como un rol de .NET Framework, entre las notificaciones en esta identidad basada en notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubpropertyToken

Obtiene el token de cuenta de Windows que corresponde al usuario.

System_CAPS_pubpropertyUser

Obtiene el identificador de seguridad (SID) del usuario.

System_CAPS_pubpropertyUserClaims

Obtiene las notificaciones que tienen la clave de la propiedad ClaimTypes.WindowsUserClaim.

NombreDescripción
System_CAPS_pubmethodAddClaim(Claim)

Agrega que una única notificación a esta identidad basada en notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodAddClaims(IEnumerable<Claim>)

Agrega que una lista de notificaciones a esta identidad basada en notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodClone()

Crea un nuevo objeto copiado de la instancia actual.(Invalida ClaimsIdentity.Clone()).

System_CAPS_protmethodCreateClaim(BinaryReader)

(Heredado de ClaimsIdentity).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa WindowsIdentity.

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa WindowsIdentity y libera los recursos administrados de forma opcional.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFindAll(Predicate<Claim>)

Recupera todas las notificaciones que coinciden con el predicado especificado.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodFindAll(String)

Recupera todas las notificaciones que tienen el tipo de notificación especificado.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodFindFirst(Predicate<Claim>)

Recupera la primera notificación que coincide con el predicado especificado.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodFindFirst(String)

Recupera la primera notificación con el tipo de notificación especificado.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodSystem_CAPS_staticGetAnonymous()

Devuelve un objeto WindowsIdentity que puede usar como valor centinela en el código para representar un usuario anónimo. El valor de la propiedad no representa la identidad anónima integrada que utiliza el sistema operativo Windows.

System_CAPS_pubmethodSystem_CAPS_staticGetCurrent()

Devuelve un objeto WindowsIdentity que representa al usuario actual de Windows.

System_CAPS_pubmethodSystem_CAPS_staticGetCurrent(Boolean)

Devuelve un objeto WindowsIdentity que representa la identidad de Windows para el subproceso o el proceso, en función del valor del parámetro ifImpersonating.

System_CAPS_pubmethodSystem_CAPS_staticGetCurrent(TokenAccessLevels)

Devuelve un objeto WindowsIdentity que representa al usuario de Windows actual, usando para ello el nivel de acceso deseado del token que se haya especificado.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_protmethodGetObjectData(SerializationInfo, StreamingContext)

Rellena el SerializationInfo con los datos necesarios para serializar el objeto ClaimsIdentity actual.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodHasClaim(Predicate<Claim>)

Determina si esta notificaciones de identidad tiene una notificación que coincide con el predicado especificado.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodHasClaim(String, String)

Determina si esta notificaciones de identidad tiene una notificación con el tipo y el valor de notificación.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodImpersonate()

Suplanta al usuario representado por el objeto WindowsIdentity.

System_CAPS_pubmethodSystem_CAPS_staticImpersonate(IntPtr)

Suplanta al usuario representado por el token de usuario especificado.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodRemoveClaim(Claim)

Intenta quitar una notificación de identidad de notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodSystem_CAPS_staticRunImpersonated(SafeAccessTokenHandle, Action)

Ejecuta la acción especificada como identidad de Windows suplantada. En lugar de usar una llamada al método suplantado y ejecutar la función en WindowsImpersonationContext, puede usar RunImpersonated y proporcionar la función directamente como parámetro.

System_CAPS_pubmethodSystem_CAPS_staticRunImpersonated<T>(SafeAccessTokenHandle, Func<T>)

Ejecuta la función especificada como identidad de Windows suplantada. En lugar de usar una llamada al método suplantado y ejecutar la función en WindowsImpersonationContext, puede usar RunImpersonated y proporcionar la función directamente como parámetro.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodTryRemoveClaim(Claim)

Intenta quitar una notificación de identidad de notificaciones.(Heredado de ClaimsIdentity).

System_CAPS_pubmethodWriteTo(BinaryWriter)

(Heredado de ClaimsIdentity).

System_CAPS_protmethodWriteTo(BinaryWriter, Byte[])

(Heredado de ClaimsIdentity).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticDefaultIssuer

Identifica el nombre del emisor predeterminado de ClaimsIdentity.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDeserializationCallback.OnDeserialization(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Implementa la interfaz ISerializable. El evento de deserialización vuelve a llamar a este método cuando se completa la deserialización.

System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Establece el objeto SerializationInfo con la información de contexto lógica que se necesita para volver a crear una instancia de este contexto de ejecución.

Llame a la GetCurrent método para crear un WindowsIdentity objeto que representa al usuario actual.

System_CAPS_importantImportante

Este tipo implementa la IDisposable interfaz. Cuando haya terminado de utilizar el tipo, debe eliminar del mismo directa o indirectamente. Para deshacerse del tipo directamente, llame a su Dispose método en un try/catch bloque. Para deshacerse de él indirectamente, use una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, vea la sección "Uso de un objeto que implementa IDisposable" en el IDisposable tema de la interfaz.

En el ejemplo siguiente se muestra el uso de los miembros de WindowsIdentity clase. Para obtener un ejemplo que muestra cómo obtener un Windows cuenta token mediante una llamada a Win32 no administrada LogonUser función y use ese token para suplantar a otro usuario, consulte la WindowsImpersonationContext clase.

using System;
using System.Security.Principal;

class WindowsIdentityMembers
{
    [STAThread]
    static void Main(string[] args)
    {
        // Retrieve the Windows account token for the current user.
        IntPtr logonToken = LogonUser();

        // Constructor implementations.
        IntPtrConstructor(logonToken);
        IntPtrStringConstructor(logonToken);
        IntPtrStringTypeConstructor(logonToken);
        IntPrtStringTypeBoolConstructor(logonToken);

        // Property implementations.
        UseProperties(logonToken);

        // Method implementations.
        GetAnonymousUser();
        ImpersonateIdentity(logonToken);

        Console.WriteLine("This sample completed successfully; " +
            "press Enter to exit.");
        Console.ReadLine();
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified Windows account token.
    private static void IntPtrConstructor(IntPtr logonToken)
    {
        // Construct a WindowsIdentity object using the input account token.
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);

        Console.WriteLine("Created a Windows identity object named " +
            windowsIdentity.Name + ".");
    }


    // Create a WindowsIdentity object for the user represented by the
    // specified account token and authentication type.
    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 + ".");
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified account token, authentication type, and Windows account
    // type.
    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 + ".");
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified account token, authentication type, Windows account type, and
    // Boolean authentication flag.
    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 + ".");
    }
    // Access the properties of a WindowsIdentity object.
    private static void UseProperties(IntPtr logonToken)
    {
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);
        string propertyDescription = "The Windows identity named ";

        // Retrieve the Windows logon name from the Windows identity object.
        propertyDescription += windowsIdentity.Name;

        // Verify that the user account is not considered to be an Anonymous
        // account by the system.
        if (!windowsIdentity.IsAnonymous)
        {
            propertyDescription += " is not an Anonymous account";
        }

        // Verify that the user account has been authenticated by Windows.
        if (windowsIdentity.IsAuthenticated)
        {
            propertyDescription += ", is authenticated";
        }

        // Verify that the user account is considered to be a System account
        // by the system.
        if (windowsIdentity.IsSystem)
        {
            propertyDescription += ", is a System account";
        }
        // Verify that the user account is considered to be a Guest account
        // by the system.
        if (windowsIdentity.IsGuest)
        {
            propertyDescription += ", is a Guest account";
        }

        // Retrieve the authentication type for the 
        String authenticationType = windowsIdentity.AuthenticationType;

        // Append the authenication type to the output message.
        if (authenticationType != null)
        {
            propertyDescription += (" and uses " + authenticationType);
            propertyDescription += (" authentication type.");
        }

        Console.WriteLine(propertyDescription);

        // Display the SID for the owner.
        Console.Write("The SID for the owner is : ");
        SecurityIdentifier si = windowsIdentity.Owner;
        Console.WriteLine(si.ToString());
        // Display the SIDs for the groups the current user belongs to.
        Console.WriteLine("Display the SIDs for the groups the current user belongs to.");
        IdentityReferenceCollection irc = windowsIdentity.Groups;
        foreach (IdentityReference ir in irc)
            Console.WriteLine(ir.Value);
        TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel;
        Console.WriteLine("The impersonation level for the current user is : " + token.ToString());
    }

    // Retrieve the account token from the current WindowsIdentity object
    // instead of calling the unmanaged LogonUser method in the advapi32.dll.
    private static IntPtr LogonUser()
    {
        IntPtr accountToken = WindowsIdentity.GetCurrent().Token;
        Console.WriteLine( "Token number is: " + accountToken.ToString());

        return accountToken;
    }

    // Get the WindowsIdentity object for an Anonymous user.
    private static void GetAnonymousUser()
    {
        // Retrieve a WindowsIdentity object that represents an anonymous
        // Windows user.
        WindowsIdentity windowsIdentity = WindowsIdentity.GetAnonymous();
    }

    // Impersonate a Windows identity.
    private static void ImpersonateIdentity(IntPtr logonToken)
    {
        // Retrieve the Windows identity using the specified token.
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);

        // Create a WindowsImpersonationContext object by impersonating the
        // Windows identity.
        WindowsImpersonationContext impersonationContext =
            windowsIdentity.Impersonate();

        Console.WriteLine("Name of the identity after impersonation: "
            + WindowsIdentity.GetCurrent().Name + ".");
        Console.WriteLine(windowsIdentity.ImpersonationLevel);
        // Stop impersonating the user.
        impersonationContext.Undo();

        // Check the identity name.
        Console.Write("Name of the identity after performing an Undo on the");
        Console.WriteLine(" impersonation: " +
            WindowsIdentity.GetCurrent().Name);
    }
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: