首页 > 解决方案 > 如何将文本框文本详细信息传递给数据库连接字符串c#

问题描述

我有一个应用程序,我想将用户在文本框中输入的用户名密码端口服务名传递给连接字符串,以便我可以将它用于 Oracle 数据库连接。

例子 :

string conString = "User Id=hr;Password=hr;Data Source=localhost:1523/orcl.162.0.7;";

代替User Id hr => textuser_id.Text价值代替password hr => textpass.Text价值

标签: c#database

解决方案


在您的应用程序中嵌入用户名和密码绝不是一个好主意。主要是因为大多数代码最终都在 github 等代码存储库中,并且您不希望用户和密码对公司的其他团队或其他 github 用户可见。所需要的只是不小心公开了一个 repo,突然之间任何人都可以访问您的数据库。一些替代方案包括

  1. 从 azure key vault 或 HashiCorp vault 等密钥保管库中提取它们
  2. 如果它们将在服务器上运行,则从系统环境变量环境变量中提取它们
  3. 然后正如上面推荐的先生们建议的那样,您可以使用 SqlConnectionStringBuilder 将用户名和密码放在字符串中

但是,根据您对如何操作字符串的了解,一些示例包括

        public string CreateConnectionString(string user, string password)
        {
            string optionOne = "User Id="+user+";Password="+password+";Data Source=localhost:1523/orcl.162.0.7;";

            // String interpolation
            string optionTwo = $"User Id={user};Password={password};Data Source=localhost:1523/orcl.162.0.7;";
                // Many more ways 
            return optionTwo;
        }

推荐阅读