visual ruta openfiledialog1 openfile obtener desde cualquier configurar con archivo abrir c# .net

ruta - Obtener/configurar el propietario del archivo en C#



openfiledialog visual basic (1)

No hay necesidad de P / invocar. System.IO.File.GetAccessControl devolverá un objeto FileSecurity , que tiene un método GetOwner .

Editar: Leer al propietario es bastante simple, aunque es una API algo engorrosa:

const string FILE = @"C:/test.txt"; var fs = File.GetAccessControl(FILE); var sid = fs.GetOwner(typeof(SecurityIdentifier)); Console.WriteLine(sid); // SID var ntAccount = sid.Translate(typeof(NTAccount)); Console.WriteLine(ntAccount); // DOMAIN/username

Configurar al propietario requiere una llamada a SetAccessControl para guardar los cambios. Además, aún está sujeto a las reglas de propiedad de Windows; no puede asignar la propiedad a otra cuenta. Puede otorgar permisos permanentes a la propiedad, y ellos deben asumir la propiedad.

var ntAccount = new NTAccount("DOMAIN", "username"); fs.SetOwner(ntAccount); try { File.SetAccessControl(FILE, fs); } catch (InvalidOperationException ex) { Console.WriteLine("You cannot assign ownership to that user." + "Either you don''t have TakeOwnership permissions, or it is not your user account." ); throw; }

Tengo el requisito de leer y mostrar el propietario de un archivo (para fines de auditoría), y posiblemente cambiarlo también (este es un requisito secundario). ¿Hay algún buen envoltorio de C #?

Después de un rápido Google, encontré solo la solución WMI y una sugerencia para invocar GetSecurityInfo