【问题标题】:Storing application settings in C#在 C# 中存储应用程序设置
【发布时间】:2011-03-23 05:38:36
【问题描述】:

在 C# 中存储应用程序设置(例如用户名和密码、数据库位置...)的最佳做法是什么?

提示:我是 .net 和 C# 的新手

【问题讨论】:

    标签: c# configuration-files


    【解决方案1】:

    应用程序范围的应用程序配置设置(非用户特定)属于 app.config(用于桌面应用程序)或 web.config(用于 Web 应用程序)。

    this Super Simple Example 所述,加密 web.config 文件的各个部分非常简单。

    如果您需要存储用户特定设置(如应用程序设置等)或与应用程序配置无关的应用程序范围设置,您可以使用此处所述的设置文件:

    User Settings in C#

    【讨论】:

    • 它不是自动安全的,但您可以在 .NET 中加密配置文件及其部分。请参阅我的回答,我提供了一些显示此内容的链接。
    • 这些数据安全吗?我的意思是我的经验(在使用 .net Framework 2 的应用程序中)我的应用程序设置丢失了......一次或两次......
    【解决方案2】:

    我不确定它是在哪个版本的 .net/Visual Studio 中引入的,但您可以右键单击您的项目,选择“添加新项目”并从“添加新项目”窗口中选择“设置文件” .这会为您的项目提供一个(默认命名的)Settings.settings 文件,您可以在该文件中配置您想要公开的所有设置。

    您可以将您创建的设置定义为 ApplicationUser,这意味着您可以使用这个单一界面来控制全局和用户设置。使用 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();
    

    【讨论】:

      【解决方案3】:

      第一个选项是注册表。这很容易,但密码不太安全。另一种选择是使用您创建的文件。这也不安全,除非你想实现加密。

      下一个选项是使用应用程序设置。这也很简单,但有一些问题。首先,右键单击您的项目并转到属性。在那里,在“设置”选项卡下,您可以存储变量,您可以通过

      从程序中访问这些变量
      string password = Properties.Settings.Default.Password
      

      您也可以以相同的方式更改它们,但仅当范围设置为用户时。当范围是应用程序范围时,VS 不允许您出于某种奇怪的原因更改这些变量。要保存更改,您必须按如下方式调用 Save():

      Properties.Settings.Default.Save();
      

      这些保存在 C:\Documents and Settings\'Current User'\Local Settings\Application Data\ 下的 User Data 文件夹中

      另一种选择是将它们包含在您的数据库中,但由于您还要存储数据库位置,因此这可能不适合您。

      【讨论】:

      • 没有什么借口可以继续为新应用程序使用注册表。
      【解决方案4】:

      我认为 app.config(非网络应用)或 web.config(网络应用)。

      【讨论】:

        【解决方案5】:

        这类设置通常位于应用程序配置文件(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。

        【讨论】:

          【解决方案6】:

          正如上述回复所暗示的,app.config 或 web.config 是应用设置的最佳位置。 如果您需要更健壮的方式为数据库、服务器设置等设置 xml 样式标签,您可以使用 configurationSection 并创建自定义部分。

          http://www.codeproject.com/KB/cs/CustomConfigurationSectio.aspx

          对于数据库密码,我这样做的方式是在 xml 标记值中有一个加密字符串,然后在读取它们时解密,这样你就不会暴露密码。

          【讨论】:

            【解决方案7】:

            appsettings 配置文件、ini 文件(nini)、嵌入式数据库(sqlite、berkelydb/etc..),无论你喜欢什么方法,这取决于你的应用程序大小/性能考虑和设计。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-01-14
              • 2015-11-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多