Voici comment nous pour attribuer des autorisations à une clé de registre forte> p>
Éditeur de registre ouvert. Cliquez sur la touche sur laquelle vous souhaitez affecter des autorisations. P> li>
Dans le menu Edition, cliquez sur Autorisations. P> Li>
Attribuez un niveau d'accès à la clé sélectionnée comme suit: p> li>
pour accorder à l'utilisateur la permission de lire le contenu de la clé, mais non
Toute modification apportée au fichier, sous Autorisations pour le nom, pour Lecture forte>,
Sélectionnez la case à cocher Autoriser. P> li>
pour accorder à l'utilisateur l'autorisation d'ouvrir, d'éditer et de prendre la propriété de la
Touche sélectionnée, sous Autorisations pour le nom, pour Contrôle total Strort>, Sélectionnez
la case à cocher Autoriser. P> li>
Pour accorder la permission spéciale de l'utilisateur dans la touche sélectionnée, cliquez sur
Avancé. P> li>
ul>
Donc, ma question est, serait-elle possible de le faire par programme? Dis, si je veux accorder aux utilisateurs manuellement CODE> Attribuez les autorisations à une clé de registre: P>
3 Réponses :
Il s'agit de RegseSkeySecurity Code> API, qui est interfacé à partir de .NET CODE via
registryKey.setaccesscontrol code>, voir
Pour donner aux autorisations à l'utilisateur "tout le monde" d'une manière langagine agnostique, passe nouveau SecurityIdentifier (wellknownSidType.worldsid, null) code> au lieu de
actuelUnerstr code>.
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)); This will assign the access rights to the specified user to the registry key 'key'