Cómo obtener el SID de un usuario local? – C#
February 2nd, 2010 by JuanK
Obtener el SID del usuario que se encuentra ejecutando la aplicación es bastante sencillo:
- Adicionar using a System.Security.Principal
- Instanciar un objeto WindowsIdentity
- Construirlo a partir de WindowsIdentity.GetCurret()
- 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.
- Adicionar la referencia a System.Management y el respectivo using
- A traves de WMI se debe hacer un query al objeto Win32_UserAccount
- 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
- Hacer una búsqueda sobre el query
- 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!
- 6 Comentarios »
- Publicado en la categoría 'C#'

Wordpress