Microsoft MVP

Email y Rss

email rss

Klout

Seguidores en facebook

Timeline de mi Twitter

Tienes preguntas?

Ideas de un Conejo
Más allá de los sistemas de información: (C#)=> videojuegos, soluciones a problemas interesantes y Sistemas Operativos
XNA
C#
Sistemas Operativos
Varios
Windows Phone
WinRT
XAML
Azure
HTML 5
Acerca de

Cómo obtener el SID de un usuario local? – C#

February 2nd, 2010 by JuanK

Follow @JuanKRuiz

Obtener el SID del usuario que se encuentra ejecutando la aplicación es bastante sencillo:

  1. Adicionar using a System.Security.Principal
  2. Instanciar un objeto WindowsIdentity
  3. Construirlo a partir de WindowsIdentity.GetCurret()
  4. Usar la propiedad Value
using System;
using System.Security.Principal;

class Program
{
    static void Main(string[] args)
    {
        WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
        Console.WriteLine(currentUser.User.Value);
        Console.ReadLine();
    }
}

Sin embargo tratar de acceder a la información de los usuarios diferentes del logueado actualmente ( y sin usar impersonación ) puede ser un poco más complejo. Una alternativa viable es hacer uso de WMI.

  1. Adicionar la referencia a System.Management y el respectivo using
  2. A traves de WMI se debe hacer un query al objeto Win32_UserAccount
  3. Especificar el nombre del dominio, si es local es el nombre de la máquina el cual se peude obtener a traves de System.Environment
  4. Hacer una búsqueda sobre el query
  5. Usar el indizador accediento con la cadena “SID”
using System;
using System.Management;

class Program
{
    static void Main(string[] args)
    {
       SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='" 
                                      + System.Environment.MachineName + "'");
        ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery);
        
        Console.WriteLine("User Accounts");
        Console.WriteLine("");
        foreach (ManagementObject mObject in mSearcher.Get())
            Console.WriteLine(mObject["SID"]);

        Console.ReadLine();
    }
}

Happy Learning!

Print Friendly

Follow @JuanKRuiz

  • 6 Comentarios »
  • Publicado en la categoría 'C#'

6 comentarios to “Cómo obtener el SID de un usuario local? – C# ”


  • Silvius Says:
    October 17th, 2008 at 6:33 am  

    Juank, soy kp-sexsilvius de Laneros.com, me podrías pasar el password del texto guía de C# por favor?
    Gracias.

    Mi correo: wsilvius@gmail.com

    Silvius

  • Cómo obtener el SID de un usuario local? - C# - Ideas de un Conejo Says:
    August 18th, 2009 at 2:32 pm  

    [...] Puedes ver el articulo original en  mi blog: http://juank.black-byte.com/c-obtener-sid-usuario-local/ [...]

  • Cómo encontrar los archivos pst de outlook? - C# - Ideas de un Conejo Says:
    August 18th, 2009 at 2:35 pm  

    [...] http://juank.black-byte.com/c-obtener-sid-usuario-local/ [...]

  • Caracter de Salto de linea - C# - Ideas de un Conejo Says:
    August 18th, 2009 at 2:38 pm  

    [...] http://juank.black-byte.com/c-obtener-sid-usuario-local/ [...]

  • Rey Says:
    June 17th, 2010 at 4:45 pm  

    Hola amigos.

    he probado el codigo y lo he modificado un poco
    en ves de: Console.WriteLine(mObject["SID"]);
    puse pues: Console.WriteLine(mObject.Path.RelativePath);
    ya que deseo obtener el nombre y dominio de la sesion
    esto me funciona para obtener a los usuarios locales,
    pero es que necesito tambien las sesiones de un dominio nombrado JCCE
    que tiene usuarios en mi Pc

  • JuanK Says:
    June 17th, 2010 at 4:49 pm  

    Hola, si mal no recuerdo basta con cambiar System.Environment.MachineName por el nombre del dominio requerido. sobra decir que debes tener un nivel de privilegios dentro del dominio para poder realizar esta labor.

Deja un comentario

Redes Sociales

Follow @JuanKRuiz
Answer Questions

Busca en el blog

Artículos Relacionados

  • C# – Como obtener un manejador (handle) para una ventana de WPF
  • Artículos Relacionados

  • C# – Como obtener un manejador (handle) para una ventana de WPF
  • Nube de Temas

    API - Azure - C# - codigo - Forms - IE - IE9 - Image - imagenes - IT - Microsoft - MVP - Pinned - PowerShell - Proceso - rendimiento - RSS - sistema - Sistemas Operativos - Site - Visual - WCF - Windows - Windows 8 - Windows Store - WinRT - WndProc - WPF - XAML - XNA

    Blogs recomendados

  • VBCodigoPocketPC Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)
  • Róbinson Moscoso Estaré publicando acá cosas sobre tecnologia .NET, situacioines cotidianas de las que voy aprendiendo… sirve como extensión de memoria.
  • .Net C# Blog de Nelsón Venegas
  • Warnov Microsoft Developer Evangelist
  • IT LIfe Blog de mi Hermano que esta en el lado claro: IT
  • Sorey Garcia Una chica del común con la firme intención de no serlo
  • Black Byte videojuegos, modelado y animación 3d
  • Road to IT World Cosas interesantes de IT
  • Marcela Chitiva Un poco de esto… un poco de aquello
  • Surviving the Nigth El mejor blog para aquellos que nos gustan los “internals”
  • Meta

    1. Log in
    2. WordPress

    Ideas de un Conejo is powered by Wordpress. Theme designed by Juan Carlos Ruiz.