C# - 如何使用DirectorySecurity.SetOwner()?我遇到了麻烦

时间:2009-09-16 21:22:01

标签: c# directoryinfo

我在弄清楚SetOwner()方法时遇到了麻烦。 就我而言,我已经通过代码在Active Directory中创建了一个用户,然后,我为用户创建了一个文件夹。

一切正常,但我无法将新创建的用户设置为文件夹的所有者。 我不是C#guru,所以我很难理解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 个答案:

答案 0 :(得分:6)

试试这个

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

你也可以看到这个链接 Create, Read, Update Active Directory Users with C#

再见。