Pregunta

Tengo problemas para descubrir el método SetOwner () . En mi caso, he creado un usuario en Active Directory por código, luego, creo una carpeta para el usuario.

Todo funciona bien, pero no puedo establecer el usuario recién creado como el propietario de la carpeta. No soy un gurú de C #, por lo que tengo problemas para comprender el método DirectorySecurity.SetOwner () . ¿Alguien puede ayudarme?

Aquí está el código que crea la carpeta, establece los derechos como lo quiero, pero también necesito configurar al usuario como propietario.

string pathIntern = @"\\11fil01\brukar\" + user.UserName;

System.IO.DirectoryInfo diIntern = new System.IO.DirectoryInfo(pathIntern);

diIntern.Create();

DirectorySecurity dsecIntern = diIntern.GetAccessControl();

FileSystemAccessRule rule = new FileSystemAccessRule(user.UserName, FileSystemRights.FullControl, InheritanceFlags.None | nheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);

dsecIntern.SetAccessRule(rule);
diIntern.SetAccessControl(dsecIntern);
//dsecIntern.SetOwner(heeeeelp);
¿Fue útil?

Solución

Prueba esto

string pathIntern = @"\\11fil01\brukar\" + user.UserName;               
DirectoryInfo diIntern       = new DirectoryInfo(pathIntern);
DirectorySecurity dsecIntern = diIntern.GetAccessControl();
IdentityReference newUser    = new NTAccount(domain + @”\” + username);
dsecIntern.SetOwner(newUser);
FileSystemAccessRule permissions = new FileSystemAccessRule(newUser,FileSystemRights.FullControl, AccessControlType.Allow);
dsecIntern.AddAccessRule(permissions);
diIntern.SetAccessControl(dsecIntern);

También puedes ver este enlace Crear, leer, actualizar usuarios de Active Directory con C #

Adiós.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top