在C#中存储应用程序设置(例如用户名和密码,数据库位置......)的最佳做法是什么?
提示:我是.net和C#
的新手答案 0 :(得分:12)
应用程序配置应用程序范围(非特定于用户)的设置属于app.config(适用于桌面应用程序)或web.config(适用于Web应用程序)。
加密web.config文件的各个部分非常简单,如this Super Simple Example中所述。
如果您需要存储用户特定设置(如应用程序设置等)或与应用程序配置无关的应用程序范围设置,您可以使用此处所述的设置文件:
答案 1 :(得分:7)
我不确定它引入了什么版本的.net / Visual Studio,但您可以右键单击您的项目,选择“添加新项”并从“添加新项”窗口中选择“设置文件” 。这为您的项目提供了一个(默认命名)Settings.settings
文件,您可以配置要公开的所有设置。
您可以将您创建的设置定义为应用程序或用户,这意味着您可以使用此单一界面来控制全局和用户设置。使用Visual Studio提供的编辑器在Settings.settings文件中创建设置后,可以使用以下代码访问它:
// Get a Setting value
var valueOfSetting1 = Settings1.Default.Setting1;
// Modify and save a Setting value
Settings1.Default.Setting1 = "New Value";
Settings1.Default.Save();
答案 2 :(得分:2)
第一个选项是注册表。它很简单,但对密码来说不太安全。另一个选项是使用您创建的文件。这也不安全,除非你想实现加密。
下一个选项是使用“应用程序设置”。这也很简单,但有一些捕获。首先,右键单击您的项目并转到“属性”。在“设置”选项卡下,您可以通过
存储可从程序访问的变量string password = Properties.Settings.Default.Password
您也可以以相同的方式更改它们,但仅在范围设置为用户时。当范围是应用程序范围时,VS不允许您出于某些奇怪的原因更改这些变量。要保存更改,您必须按如下方式调用Save():
Properties.Settings.Default.Save();
这些保存在C:\ Documents and Settings \'Current User'\ Local Settings \ Application Data \
下的User Data文件夹中另一种选择是将它们包含在您的数据库中,但由于您还要存储数据库位置,这可能不适合您。
答案 3 :(得分:0)
我认为app.config(非网络应用)或web.config(网络应用)。
答案 4 :(得分:0)
这些设置通常位于应用程序配置文件(web.config,app.config)中。
http://www.devasp.net/net/articles/display/679.html
如果要存储密码,则可能还需要加密相关配置部分。
http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx
http://msdn.microsoft.com/en-us/library/ff650304.aspx
请注意,如果您使用app.config,您将看到它被重命名为..config,具体取决于您的输出是生成DLL还是EXE。
答案 5 :(得分:0)
appsettings配置文件,ini文件(nini),embeddable数据库(sqlite,berkelydb / etc ..),无论你喜欢什么方法,都取决于你的应用程序大小/性能考虑和设计。
答案 6 :(得分:0)
与上述回复建议一样,app.config或web.config是应用设置的最佳位置。 如果您需要更强大的数据库,服务器设置等xml样式标记方式,可以使用configurationSection并创建自定义部分。
http://www.codeproject.com/KB/cs/CustomConfigurationSectio.aspx
对于数据库密码,我这样做的方式是在xml标记值中有一个加密的字符串,然后在读取时解密,这样就不会暴露密码。