Изменение разрешения реестра - PullRequest
4 голосов
/ 21 марта 2011

Я хочу изменить разрешение раздела реестра и установить его только для чтения.Как я могу это сделать?

Я пробовал таким образом, но это ничего не меняет:

RegistryPermission rp = new RegistryPermission(
    RegistryPermissionAccess.Read,
    "HKEY_LOCAL_MACHINE\\SOFTWARE\\paci_1\\identity\\ASPNET_SETREG"
);
rp.AddPathList(
    RegistryPermissionAccess.Read,
    "HKEY_LOCAL_MACHINE\\SOFTWARE\\paci_1\\identity\\ASPNET_SETREG"
);

Кроме того, как я могу сделать это для пользователя или администратора или владельца и т. Д.?

1 Ответ

3 голосов
/ 22 июля 2012

Я думаю, что класс, который вам нужен, это RegistrySecurity.Это задокументировано здесь .

Это должно выглядеть примерно так:

using(RegistryKey rk =   
    Registry.LocalMachine.OpenSubKey(@"SOFTWARE\paci_1\identity\ASPNET_SETREG") )
{
    string gname = Environment.UserDomainName + @"\" + Environment.UserName;   
    RegistrySecurity rs = new RegistrySecurity();
    rs.AddAccessRule(new RegistryAccessRule(gname, RegistryRights.ReadKey, AccessControlType.Allow));
    rk.SetAccessControl(rs);
}

Конечно, вы бы заменили gname именем пользователя с указанием домена..

...