【问题标题】:Read/Write Application Settings in C#.NET projectC#.NET 项目中的读/写应用程序设置
【发布时间】:2015-08-11 08:16:23
【问题描述】:

我需要通过.aspx 文件将信息(数据库密码)永久保存在我的项目中。我找到了应用程序设置来存储密码,但其他用户无法访问我的值。

例如:

  1. 设置db_password 的值为oldPassword
  2. 管理员(用户 A)将数据库密码更改为 newPassword。它通过以下方式存储到应用程序设置中:Properties.Settings.Default["db_password"] = tb_testSettingPassword.Text;
  3. 保存:Properties.Settings.Default.Save();
  4. 管理员(用户 A)查看更改后的值:lt_testSettingPassword.Text = System.Convert.ToString(Properties.Settings.Default["db_password"]);
  5. 用户 B(非管理员)访问该页面并希望从数据库中获取信息。他需要通过 用户 A 保存的密码进行连接,但我仍然得到值 oldPassword

如何存储所有用户的值?

【问题讨论】:

    标签: c# asp.net application-settings


    【解决方案1】:

    使用Properties.Settings.Default 存储的设置存储在当前用户自己的应用程序数据文件夹中(Vista 及以上版本为%USERPROFILE%\AppData)。
    如果您想让所有用户都可以轻松访问配置文件,您应该将其存储在System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
    该行将为您提供通用 AppData 文件夹(Win7 下的 C:\ProgramDAta)的路径,所有用户都将拥有读取和写入权限。
    您应该在那里为您的应用程序创建一个文件夹,然后在该文件夹中创建您的配置文件。

    如果您在创建文件夹和文件时需要帮助,有多个关于 SO 的问题和答案应该可以帮助您。

    【讨论】:

    • 这是唯一的方法吗?我需要在几周内交付程序,我认为新的 windows 服务器上的文件夹路径不会相同..
    • 使用环境变量的美妙之处在于它指向哪里并不重要,只要它总是指向同一个环境中的同一个位置。它可以指向C:\somewhere\over\the\rainbow\folder,你不必关心
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2019-11-25
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    相关资源
    最近更新 更多