Impersonalización

Alguien ha escuchado hablar sobre este concepto??? Seguramente muchos desarrolladores que han creado software web debe saber algo del tema, sin embargo esto que expondré acá es algo un poco distinto, pero sigue el mismo concepto.

Lo que voy a mostrar es como poder realizar la ejecución de un bloque de código determinado con un usuario diferente al que inició la aplicación, es decir, si inicié la aplicación con el usuario01, haré que unas cuantas líneas de código se ejecuten con el usuario02, luego que vuelva a ejecutar las líneas restantes con el usuario 01.

/// <summary>
/// Cambia el usuario en unas líneas de código.
/// </summary>
/// <param name="usuario">Nuevo usuario.</param>
/// <param name="clave">Clave de nuevo usuario.</param>
/// <param name="dominio">Dominio del nuevo usuario.</param>
public static void CambioUsuario(string usuario, string clave, string dominio)
{
    WindowsImpersonationContext objContexto = null;

    Console.WriteLine("Usuario: {0}", Environment.UserName);

    objContexto = Impersonaliza.WinLogOn(usuario, clave, dominio);
    if (objContexto != null)
    {

        //Aquí va el código que se necesita ejecutar 

        Console.WriteLine("Usuario: {0}", Environment.UserName);

        objContexto.Undo();
    }

    Console.WriteLine("Usuario: {0}", Environment.UserName);
    Console.ReadLine();
}

Justo después de la línea 21 (objContexto.Undo();), vuelve al usuario con el cual ha ingresado al SO.

Acá va el resultado con el usuario “Prueba” al cual se dio el control de la aplicación.

image

Adjunto el código aquí.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s