这是Cache password for SQL Server connection as a hash的后续。
http://www.codeproject.com/Articles/15392/Implementing-Protected-Configuration-With-Windows描述了本地 Windows 应用程序使用受保护配置的方法。但是,根据我的应用程序设计运行的环境,安装程序是不可取的。
我尝试运行以下命令:
object settings = ConfigurationManager.GetSection("userSettings/MyApp.Properties.Settings");
SectionInformation info = ((ConfigurationSection)settings).SectionInformation;
if (!info.IsProtected)
info.ProtectSection("DPAPIProtection");
在我的 WPF 应用程序中的几个不同时间,但每次我这样做时,我都会从 VerifyIsEditable 中的 .NET 的 SectionInformation.cs 中得到这个异常:
if (IsLocked) {
throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsection_when_locked));
所以。有没有办法(a)ProtectSection()
在加载和锁定配置之前运行,或者(b)在调用之后在应用程序结束Settings.Default.Save()
时刷新配置,关闭并解锁它,然后调用ProtectSection()
?