我正在Windows 8.1上使用C#.NET4.0 VS2010开发Windows桌面应用程序.我使用.NET设置机制存储了一系列设置.它们具有用户范围,因此,在应用程序中设置时,它们将写入Users\username\AppData\Local\companyname\App.exe_URL_randomstuff\versionno\user.config.
这些设置包括我需要隐藏的一些用户注册信息.我的研究表明我应该能够使用RsaProtectedConfigurationProvider加密设置,但我发现的所有示例都与加密app.config而不是user.config有关(例如http://msdn.microsoft.com/en-us /library/system.configuration.rsaprotectedconfigurationprovider.aspx).
因此,我的问题是可以加密user.config,如果是这样,怎么办?我注意到当我实例化System.Configuration.Configuration对象时,我可以将ConfigurationUserLevel设置为PerUserRoamingAndLocal.当我通过调试器检查对象时,它似乎引用了正确的user.config文件,但是当我继续实例时,一个ConfigurationSection来保护它返回null.代码如下所示:
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoamingAndLocal);
ConfigurationSection connStrings = config.AppSettings;
connStrings.SectionInformation.ProtectSection(provider);
Run Code Online (Sandbox Code Playgroud)
我认为config.AppSettings可能不正确,但我不知道该替换它.
任何建议都非常感谢.
上下文
我有一个现有的项目,它是一个连接到本地SQL Server Express 12数据库的数据访问层.
我现在想在使用该数据库的同一解决方案中创建一个新的ASP.NET Core项目.我还想在用户身份验证中使用烘焙,并将相关表添加到此数据库中.
我做了什么
我已成功创建ASP.NET Core项目,但它指向新创建的(localdb)MSSQLLocalDB而不是我的SQL Server Express数据库.我将appsettings.json中的连接字符串更改为:
"DefaultConnection": {
"ConnectionString": "Server=MAIN-DESKTOP\\SQLEXPRESS;Database=ArbitrageSearch;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Run Code Online (Sandbox Code Playgroud)
我希望它然后抱怨丢失表,但实际上应用程序继续访问(localdb)MSSQLLocalDB.
题
如何指向现有的SQL Express数据库,然后如何初始化支持用户身份验证所需的表?