Регистрдің кіші батырмасына бағдарламалы түрде рұқсат беру

Міне, біз қолмен тізілім кілтіне рұқсатты тағайындаймыз:

Тіркеу кілтінің рұқсаттарын тағайындау үшін

  • Тізбе өңдегішін ашыңыз. Рұқсаттарды тағайындау керек кілтін басыңыз.

  • Өңдеу мәзірінде Рұқсаттар түймешігін басыңыз.

  • Таңдалған пернеге кіру деңгейін төмендегідей тағайындаңыз:

  • Пайдаланушыға негізгі мазмұнды оқуға рұқсат беру үшін, бірақ сақтамаңыз Оқылды үшін атауға арналған рұқсаттар астында файлға жасалған кез келген өзгертулер, Рұқсат ету құсбелгісін қойыңыз.

  • Пайдаланушыны ашуға, өңдеуге және иелік етуге рұқсат беру таңдалған кілт, атау үшін Рұқсаттар астында, Толық басқару үшін таңдаңыз Рұқсат құсбелгісін.

  • Таңдалған батырмаға пайдаланушыға арнайы рұқсат беру үшін басыңыз Кеңейтілген.

Мәселен менің сұрағым бар ма, мұны жүйелі түрде жасауға болады ма? Айтыңызшы, егер мен пайдаланушыға толық бақылау рұқсат етілсе, белгілі бір ішкі кілтке рұқсат берсем, C# -де кодты қалай жазуым керек? Үлкен рахмет.

6

3 жауаптар

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.LocalMachine;
RegistrySecurity rs = new RegistrySecurity();
rs = key.GetAccessControl();
string currentUserStr = Environment.UserDomainName + "\\" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(currentUserStr, RegistryRights.WriteKey |  RegistryRights.ReadKey | RegistryRights.Delete | RegistryRights.FullControl, AccessControlType.Allow));

Бұл көрсетілген пайдаланушыға қатынау құқықтарын «кілт» тізілімінің кілтіне тағайындайды.

4
қосылды

RegistrySecurity class is also useful here. So we can write the following code to apply access rules on the registry key for a current user.

RegistrySecurity rs = new RegistrySecurity();//it is right string for this code
string currentUserStr = Environment.UserDomainName + "\\" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(currentUserStr, RegistryRights.WriteKey | RegistryRights.ReadKey | RegistryRights.Delete | RegistryRights.FullControl, AccessControlType.Allow));
3
қосылды
«Әрбір» пайдаланушыны тілдің агностикалық жолында рұқсатын беру үшін currentUserStr орнына new SecurityIdentifier (WellKnownSidType.WorldSid, null) өтіңіз.
қосылды автор Uwe Keim, көзі

It is about RegSetKeySecurity API, which is interfaced to from .NET code via RegistryKey.SetAccessControl, see Using RegSetKeySecurity to avoid registry redirection

1
қосылды