Autor Beitrag
KarlSchmidberger
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 23.12.10 11:01 
.NET Version: 3.5
Hallo,

ich schreibe soeben ein Programm für unsere Administratoren in meiner Firma.

Rechte auf einen Registry-Key sollen gesetzt werden.

Mein Programm muß Werte verändern bzw. schreiben auf die der Benutzer mit Benutzer-Rechte noch kein Recht haben.

Das Programm wird mit einem Benutzer-Konto mit Benutzer-Rechte ausgeführt.

Ich denke das ein Benutzer mit Administratorrechte einmal die Registry-Rechte verändern muß, das ist auch in Ordnung.

Geschrieben werden soll in HKLM und in HKCR.

Einen Registry-Key mit den gewünschten Rechten zu Erstellen habe ich schon gefunden.

Ich möcht jedoch nur die Rechte ändern!

schöne Grüße 8)


ausblenden volle Höhe C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
using System;
using System.Security.AccessControl;
using System.Windows.Forms;
using Microsoft.Win32;

namespace WindowsFormsApplication4
{
class c_RegistryKeyRechteÄndern_mit_Delete_
{
public void RegistryKeyErstellenAndRechteVergeben()
{
String user = "Jeder";
String RegPath = "SOFTWARE\\_foo";

RegistrySecurity rs = new RegistrySecurity();


rs.AddAccessRule(new RegistryAccessRule(user,
RegistryRights.FullControl | RegistryRights.Delete,
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow));


// Create the example key with registry security.
RegistryKey rk = null;
try
{
rk = Registry.LocalMachine.CreateSubKey(RegPath,
RegistryKeyPermissionCheck.Default, rs);
rk.SetValue("ValueName", "StringValue");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

if (rk != null) rk.Close();
}
}
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 560
Erhaltene Danke: 137



BeitragVerfasst: Do 23.12.10 14:38 
Hallo,

na wenn Du nur die Berechtigungen ändern willst, dann öffne einfach den Schlüssel und setze dann die Berechtigungen. Das würde dann so aussehen:
ausblenden C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
try
{
//wenn der Key schon existiert, wird er geöffnet, nicht neu erzeugt!
using (RegistryKey rk = Registry.LocalMachine.CreateSubKey(RegPath, RegistryKeyPermissionCheck.Default))
{
rk.SetAccessControl(rs);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Marko
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
KarlSchmidberger Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 23.12.10 15:49 
Hallo,

Danke @Trashkid2000

Perfekt!, DANKE.

Ich dachte "CreateSubKey" löscht den kommpletten Inhalt des Keys ... ist aber nicht so :D

Nochmal vielen Dank
Schöne Grüße
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren