Прежде чем вырвать оставшуюся часть моих волос, я хотел бы получить некоторую информацию об этом.
Я пытаюсь стать владельцем папки. Конечно, я запускаю программу от имени администратора и у меня есть права на владение, поскольку я могу сменить владельца в проводнике.
Однако я могу сменить владельца, если он принадлежит администратору или моей учетной записи, и я могу изменить разрешения, если у меня уже есть владелец.
Если я попытаюсь присвоить себе файл, скажем, принадлежащий SYSTEM, я получу исключение от несанкционированного доступа.
Я пробовал разные вещи с методами accesscontrol, но ничего не работает, этот последний метод, я думаю, прямо в книге.
private static void makePerm(string file, NTAccount account)
{
FileInfo finfo = new FileInfo(file);
FileSecurity fsecurity = finfo.GetAccessControl();
//also tried it like this //fsecurity.ResetAccessRule(new FileSystemAccessRule(string.Format(@"{0}\{1}", Environment.UserDomainName.ToString(), Environment.UserDomainName.ToString()), FileSystemRights.FullControl, AccessControlType.Allow));
fsecurity.SetOwner(account);
finfo.SetAccessControl(fsecurity);
}
Я пытаюсь это на Windows 7, кстати.
Что мне здесь не хватает?