¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
WindowsIdentity (Clase)
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

WindowsIdentity (Clase)

Representa a un usuario de Windows.

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

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

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

El tipo WindowsIdentity expone los siguientes miembros.

  NombreDescripción
Método públicoWindowsIdentity(IntPtr)Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado mediante el token de cuenta de Windows especificado.
Método públicoWindowsIdentity(String)Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por el nombre principal de usuario (UPN).
Método protegidoWindowsIdentity(WindowsIdentity)Inicializa una nueva instancia de la clase WindowsIdentity mediante el objeto WindowsIdentity especificado.
Método públicoWindowsIdentity(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.
Método públicoWindowsIdentity(SerializationInfo, StreamingContext)Inicializa una nueva instancia de la clase WindowsIdentity para el usuario representado por la información incluida en una secuencia SerializationInfo.
Método públicoWindowsIdentity(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 especificado.
Método públicoWindowsIdentity(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.
Método públicoWindowsIdentity(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.
Arriba

  NombreDescripción
Propiedad públicaActorObtiene o establece la identidad del usuario que llama al que se han concedido derechos de delegación. (Se hereda de ClaimsIdentity).
Propiedad públicaAuthenticationTypeObtiene el tipo de autenticación utilizado para identificar al usuario. (Invalida a ClaimsIdentity.AuthenticationType).
Propiedad públicaBootstrapContextObtiene o establece el token que se usó para crear estas notificaciones de identidad. (Se hereda de ClaimsIdentity).
Propiedad públicaClaimsObtiene todas las notificaciones para el usuario representado por esta identidad de Windows. (Invalida a ClaimsIdentity.Claims).
Propiedad públicaDeviceClaimsObtiene las notificaciones que tienen la clave de la propiedad ClaimTypes.WindowsDeviceClaim.
Propiedad públicaGroupsObtiene los grupos a los que pertenece el usuario de Windows actual.
Propiedad públicaImpersonationLevelObtiene el nivel de suplantación del usuario.
Propiedad públicaIsAnonymousObtienen un valor que indica si el sistema identifica la cuenta de usuario como cuenta anónima.
Propiedad públicaIsAuthenticatedObtiene un valor que indica si Windows ha autenticado al usuario. (Invalida a ClaimsIdentity.IsAuthenticated).
Propiedad públicaIsGuestObtiene un valor que indica si el sistema identifica la cuenta de usuario como cuenta Guest.
Propiedad públicaIsSystemObtiene un valor que indica si el sistema identifica la cuenta de usuario como cuenta System.
Propiedad públicaLabelObtiene o establece la etiqueta para esta identidad de notificaciones. (Se hereda de ClaimsIdentity).
Propiedad públicaNameObtiene el nombre de inicio de sesión de Windows del usuario. (Invalida a ClaimsIdentity.Name).
Propiedad públicaNameClaimTypeObtiene el tipo de notificación que se usa para determinar qué notificaciones proporcionan el valor de la propiedad Name de esta identidad de notificación. (Se hereda de ClaimsIdentity).
Propiedad públicaOwnerObtiene el identificador de seguridad (SID) del propietario del token.
Propiedad públicaRoleClaimTypeObtiene el tipo de notificación que se interpreta como rol de .NET Framework entre las notificaciones en esta identidad de notificación. (Se hereda de ClaimsIdentity).
Propiedad públicaTokenObtiene el token de cuenta de Windows que corresponde al usuario.
Propiedad públicaUserObtiene el identificador de seguridad (SID) del usuario.
Propiedad públicaUserClaimsObtiene las notificaciones que tienen la clave de la propiedad ClaimTypes.WindowsUserClaim.
Arriba

  NombreDescripción
Método públicoAddClaimAgrega una sola reclamación a esta identidad de reclamaciones. (Se hereda de ClaimsIdentity).
Método públicoAddClaimsAgrega una lista de reclamaciones a esta identidad de reclamaciones. (Se hereda de ClaimsIdentity).
Método públicoCloneCrea un nuevo objeto que es una copia de la instancia actual. (Invalida a ClaimsIdentity.Clone()).
Método públicoDispose()Libera todos los recursos utilizados por WindowsIdentity.
Método protegidoDispose(Boolean)Libera los recursos no administrados que utiliza WindowsIdentity y libera los recursos administrados de forma opcional.
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoFindAll(Predicate<Claim>)Recupera todas las notificaciones que coinciden con el predicado especificado. (Se hereda de ClaimsIdentity).
Método públicoFindAll(String)Recupera todas las notificaciones con el tipo de notificación especificado. (Se hereda de ClaimsIdentity).
Método públicoFindFirst(Predicate<Claim>)Recupera la primera reclamación con la que coincide el predicado especificado. (Se hereda de ClaimsIdentity).
Método públicoFindFirst(String)Recupera la primera reclamación con el tipo especificado. (Se hereda de ClaimsIdentity).
Método públicoMiembro estáticoGetAnonymousDevuelve un objeto WindowsIdentity que puede utilizar como valor centinela en el código para representar un usuario anónimo. El valor de propiedad no representa la identidad anónima integrada que utiliza el sistema operativo Windows.
Método públicoMiembro estáticoGetCurrent()Devuelve un objeto WindowsIdentity que representa al usuario actual de Windows.
Método públicoMiembro estáticoGetCurrent(Boolean)Devuelve un objeto WindowsIdentity que representa la identidad de Windows para el subproceso o el proceso, dependiendo del valor del parámetro ifImpersonating.
Método públicoMiembro estáticoGetCurrent(TokenAccessLevels)Devuelve un objeto WindowsIdentity que representa el usuario de Windows actual, utilizando el nivel de acceso del token deseado especificado.
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método protegidoGetObjectDataRellena el objeto SerializationInfo con los datos necesarios para serializar el objeto ClaimsIdentity actual. (Se hereda de ClaimsIdentity).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoHasClaim(Predicate<Claim>)Determina si esta identidad de notificaciones tiene una notificación que coincide con el predicado especificado. (Se hereda de ClaimsIdentity).
Método públicoHasClaim(String, String)Determina si esta identidad de notificaciones tiene una notificación con el tipo y el valor especificados. (Se hereda de ClaimsIdentity).
Método públicoImpersonate()Suplanta al usuario representado por el objeto WindowsIdentity.
Método públicoMiembro estáticoImpersonate(IntPtr)Suplanta al usuario representado por el token de usuario especificado.
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoRemoveClaimSe intenta quitar una reclamación de la identidad de reclamaciones. (Se hereda de ClaimsIdentity).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoTryRemoveClaimSe intenta quitar una reclamación de la identidad de reclamaciones. (Se hereda de ClaimsIdentity).
Arriba

  NombreDescripción
Campo públicoMiembro estáticoDefaultIssuerIdentifica el nombre del emisor predeterminado de ClaimsIdentity .
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIDeserializationCallback.OnDeserializationInfraestructura. Implementa la interfaz ISerializable. El evento de deserialización vuelve a llamar a este método cuando se completa la deserialización.
Implementación explícita de interfacesMétodo privadoISerializable.GetObjectDataInfraestructura. Establece el objeto SerializationInfo con la información de contexto lógica necesaria para volver a crear una instancia de este contexto de ejecución.
Arriba

Llama al método GetCurrent para crear un objeto WindowsIdentity que represente al usuario actual.

Nota importanteImportante

Este tipo implementa la interfaz IDisposable. Cuando haya terminado de utilizar el tipo, se debe eliminar de directa o indirectamente. Para desechar de tipo directamente, llame al método de Dispose en un bloque de try/decatch . Para desechar de indirectamente, utilice una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, vea “Uso de objeto que implementa sección IDisposable” en el tema de la interfaz de IDisposable .

En el ejemplo siguiente se muestra el uso de miembros de la clase WindowsIdentity. Para obtener un ejemplo donde se muestra cómo obtener un token de cuenta de Windows a través de una llamada a la función no administrada de Win32 LogonUser y utilizar ese token para suplantar a otro usuario, vea la clase WindowsImpersonationContext.


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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft