2011-10-28 6 views
5

に権限を割り当てる我々は、レジストリキーに権限を割り当てるmanually方法です:はプログラムここでは、レジストリサブキー

キー

  • レジストリエディタを開き、レジストリへのアクセス権を割り当てるには。アクセス許可を割り当てるキーをクリックします。

  • [編集]メニューの[アクセス許可]をクリックします。

  • がキー内容を読み取るする権限をユーザに付与するには、なくのために、名前のアクセス許可の下で、ファイルに加えられた 変更を保存し、次のよう

  • 選択したキーにアクセスレベルを割り当てます。、 を読み、[許可]チェックボックスをオンにします。 、編集を開き、 選択キーの所有権を取得する権限をユーザに付与する

  • は、名前の権限の下で、フルコントロールため、 許可]チェックボックスを選択します。

  • ユーザーに選択したキーに特別なアクセス許可を与えるには、 アドバンストをクリックします。

私の質問は、プログラムで行うことができますか?たとえば、ユーザーに特定のサブキーに対するフルコントロールのアクセス許可を許可する場合、C#でコードを書く方法は?どうもありがとう。

答えて

3

RegistrySecurityクラスはここにも便利です参照してください。したがって、次のコードを記述して、現在のユーザーのレジストリキーにアクセスルールを適用することができます。

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

に指定したユーザへのアクセス権を割り当てる '新しいセキュリティ識別子を渡しますWellKnownSidType.WorldSid、null) 'の代わりに' 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)); 

これは(、言語に依存しない方法で、「すべての人」のユーザーに権限を与えるために、レジストリキー「キー」

関連する問題