2011-10-28 20 views
5

Ecco come si manually assegnare le autorizzazioni a una chiave di registro:livello di programmazione assegnare l'autorizzazione a una sottochiave del Registro

per assegnare le autorizzazioni a una chiave di registro

  • Aprire l'editor del Registro di sistema. Fare clic sulla chiave a cui si desidera assegnare le autorizzazioni.

  • Nel menu Modifica, fare clic su Autorizzazioni.

  • Assegnare un livello di accesso alla chiave selezionata come segue:

  • Per concedere l'autorizzazione all'utente di leggere i contenuti chiave, ma non salvare le tutte le modifiche apportate al file, sotto Permessi per nome, per Leggi, selezionare la casella di controllo Consenti.

  • Per concedere l'autorizzazione all'utente di aprire, modificare e assumere la proprietà della chiave selezionato, sotto Permessi per nome, per Controllo completo, selezionare la casella di controllo Consenti.

  • Per concedere all'utente un'autorizzazione speciale nella chiave selezionata, fare clic su Avanzate.

Quindi la mia domanda è, sarebbe possibile farlo a livello di programmazione? Dite, se voglio concedere agli utenti l'autorizzazione per il controllo completo su una particolare sottochiave, come dovrei scrivere il codice in C#? Grazie mille.

risposta

3

RegistrySecurity classe è utile anche qui. Quindi possiamo scrivere il seguente codice per applicare le regole di accesso sulla chiave di registro per un utente corrente.

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

Per dare autorizzazioni per l'utente "tutti" in modo indipendente dal linguaggio, passare 'nuova SecurityIdentifier (WellKnownSidType.WorldSid, null) 'invece di' currentUserStr'. –

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

Questo assegnerà i diritti di accesso per l'utente specificato alla 'chiave' chiave di registro

Problemi correlati