Ich habe eine Intranet-Webanwendung, in der verschlüsselte Verbindungszeichenfolge in der Windows-Registrierung gespeichert ist (Verbindungszeichenfolge wird von einigen anderen Apps geteilt). Die Anwendung wird auf einem Windows 2012-Server gehostet. In Entwicklungs-/Testumgebungen (keine Produktion) möchte ich diesen Schlüssel ändern können, um zu verschiedenen Datenbanken wechseln zu können.Schreiben in Windows-Registrierung von Intranet-App
Ich scheine, um es zu schreiben, nicht in der Lage, ich verschiedene Fehler halte, je nachdem, wie ich es Ansatz:
string sKeyValue = "SOFTWARE\\SomeProject\\SomeApp";
RegistryKey rk;
rk = Registry.LocalMachine.OpenSubKey(sKeyValue, true); // Requested registry access is not allowed.
Versuchte:
RegistryPermission p = new RegistryPermission(RegistryPermissionAccess.AllAccess, sKeyValue);
p.Assert();
auch
RegistrySecurity rs = new RegistrySecurity();
RegistryKey key = Registry.LocalMachine;
rs = key.GetAccessControl();
string sUser = @"domain\userid";
rs.AddAccessRule(new RegistryAccessRule(sUser, RegistryRights.WriteKey, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow));
key.SetAccessControl(rs); //Exception: "Attempted to perform an unauthorized operation."
Warum verwenden Sie die Registrierung? Web.config passt viel besser zu solchen Dingen. – Colin
Wie bereits erwähnt, ist die Verbindungszeichenfolge unter einigen anderen Anwendungen auf demselben Server üblich. Daher haben alle Anwendungen, die versuchen, über die Verbindungszeichenfolge miteinander synchronisiert zu bleiben, beschlossen, sie zu verschlüsseln und in die Registrierung zu übernehmen Verwenden Sie die gleiche aktuelle Verbindungszeichenfolge (eine Stelle zum Aktualisieren) – NoBullMan