Привет всем.
Создаю директорию, при этом нужно убрать практически все права на создателя, для чего я, в частности, пытаюсь сменить владельца с помощью DirectorySecurity.setOwner
Вот код:
var ds = new DirectorySecurity();
ds.SetOwner(new System.Security.Principal.NTAccount(null, windowsUserName));
if (adminName != "")
{
ds.AddAccessRule(new FileSystemAccessRule(windowsUserName, FileSystemRights.FullControl, AccessControlType.Allow));
ds.AddAccessRule(new FileSystemAccessRule(Logger.adminName, FileSystemRights.FullControl, AccessControlType.Allow));
}
else
{
ds.AddAccessRule(new FileSystemAccessRule(windowsUserName, FileSystemRights.FullControl, AccessControlType.Allow));
}
foreach (var s in aUsers)
{
ds.AddAccessRule(new FileSystemAccessRule(windowsUserName, FileSystemRights.Read, AccessControlType.Allow));
}
Directory.CreateDirectory(dirName, ds);
var dInfo = new DirectoryInfo(dirName);
ds = dInfo.GetAccessControl();
ds.SetOwner(new System.Security.Principal.NTAccount(Logger.adminName));
dInfo.SetAccessControl(ds);
dInfo = new DirectoryInfo(dirName);
ds = dInfo.GetAccessControl();
ds.AddAccessRule (new FileSystemAccessRule(windowsUserName, FileSystemRights.AppendData, AccessControlType.Allow));
ds.AddAccessRule (new FileSystemAccessRule(windowsUserName, FileSystemRights.CreateFiles, AccessControlType.Allow));
ds.RemoveAccessRule (new FileSystemAccessRule(windowsUserName, FileSystemRights.FullControl, AccessControlType.Allow));
dInfo.SetAccessControl(ds);
Всё работает хорошо кроме строки ds.SetOwner(new System.Security.Principal.NTAccount(Logger.adminName));
Она выдаёт, что "The security indentifier is not allowed to be owner of this object" "Идентификатор безопасности не может быть владельцем данного объекта"
Что делать?