Как использовать DirectorySecurity.SetOwner ()? У меня проблемы - PullRequest
1 голос
/ 17 сентября 2009

У меня проблемы с выяснением метода SetOwner(). В моем случае я создал пользователя в Active Directory с помощью кода, затем я создаю папку для пользователя.

Все работает нормально, но я не могу установить вновь созданного пользователя в качестве владельца папки. Я не гуру C #, поэтому у меня проблемы с пониманием метода DirectorySecurity.SetOwner(). Может кто-нибудь помочь мне?

Вот код, который создает папку, устанавливает права так, как я хочу, но мне также нужно указать пользователя в качестве владельца.

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);

1 Ответ

6 голосов
/ 17 сентября 2009

Попробуйте это

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);

Вы тоже можете увидеть эту ссылку Создание, чтение, обновление пользователей Active Directory с помощью C #

Bye.

...