在C#中,存储应用程序设置(例如用户名和密码、数据库位置等)的最佳实践是什么?
提示:我是 .net 和 C# 的新手。
在C#中,存储应用程序设置(例如用户名和密码、数据库位置等)的最佳实践是什么?
提示:我是 .net 和 C# 的新手。
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();
第一种选择是使用注册表。这很容易,但对于密码来说并不太安全。另一个选择是使用您创建的文件。这也不安全,除非您想要实现加密。
下一个选项是使用应用程序设置。这也很简单,但有一些注意事项。首先,在项目上右键单击并转到“属性”。在那里,在“设置”选项卡下,您可以存储变量,您可以通过编程从中访问。
string password = Properties.Settings.Default.Password
如果作用域是用户级别,您可以以相同的方式更改它们。但是,如果作用域为应用程序级别,则由于某种奇怪的原因,VS不允许您更改这些变量。要保存更改,请按以下方式调用Save():
Properties.Settings.Default.Save();
这些文件保存在用户数据文件夹中,路径为C:\Documents and Settings\'当前用户'\Local Settings\Application Data\。
另一个选项是将它们包含在数据库中,但由于您还要存储数据库位置,因此这可能不适用于您。
我认为应该使用 app.config(非 Web 应用程序)或 web.config(Web 应用程序)。
这类设置通常存储在应用程序配置文件中(web.config、app.config)。
http://www.devasp.net/net/articles/display/679.html
如果您正在存储密码,您可能还需要加密相关的配置部分。 请注意,如果您使用app.config文件,根据您的输出是DLL还是EXE,它将被重命名为..config。使用appsettings配置文件、ini文件(nini)、可嵌入的数据库(sqlite、berkeleydb等),任何你喜欢的方法,这取决于你的应用程序大小/性能考虑和设计。
如上面的回复所建议的那样,app.config或web.config是应用程序设置的最佳位置。 如果您需要更强大的XML样式标签来管理数据库、服务器设置等,您可以使用configurationSection并创建自定义部分。
http://www.codeproject.com/KB/cs/CustomConfigurationSectio.aspx
对于数据库密码,我的做法是在 XML 标签值中有一个加密字符串,然后在读取时解密,这样就不会暴露密码。