从连接字符串中获取用户名和密码的正确方法? [复制]

Posted

技术标签:

【中文标题】从连接字符串中获取用户名和密码的正确方法? [复制]【英文标题】:Right way to get username and password from connection string? [duplicate] 【发布时间】:2012-04-16 00:52:10 【问题描述】:

我有一个这样的连接字符串:

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

如何从中获取各种数据库参数?我可以像这样获取数据库名称和服务器:

serverName = conObject.DataSource;
dbName = conObject.Database;

我同样需要用户名和密码。 mysqlConnection 对象上没有设置任何属性。

目前我是这样操作的:

public static void GetDatabaseParameters(string connectionString, out string serverName, out string dbName, out string userName, out string password)

    Match m = Regex.Match(connectionString, "SERVER=(.*?);DATABASE=(.*?);UID=(.*?);PASSWORD=(.*?);.*");

    //serverName = m.Groups[1].Value;
    //dbName = m.Groups[2].Value;
    userName = m.Groups[3].Value;
    password = m.Groups[4].Value;

这里有公认的做法吗?

【问题讨论】:

【参考方案1】:

您可以使用SqlConnectionStringBuilder 类

string conString = "SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(conString);
string user = builder.UserID;
string pass = builder.Password;

【讨论】:

这对 mysql 也适用吗? 如果你为 MySQL 使用特殊的 .NET 组件,那么应该有特定的 ConnectionStringBuilder,例如MySqlConnectionStringBuilder。 @Devart 谢谢.. 现在我明白了.. 如果你有一个 MySqlConnectionStringBuilder 类,它不是框架的默认部分。看这里forums.mysql.com/read.php?38,60345 如何从中获取 DatabaseName,我在 builder 中没有找到类似的属性?

以上是关于从连接字符串中获取用户名和密码的正确方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

获取密码时,提示“用户名和密码不正确”怎么办?

VS连接Access数据库--连接字符串及执行查询语句的方法(增删改查,用户名查重,根据用户获取密码查询)

ASP.NET中操作SQL数据库(连接字符串的配置及获取)

sudo -S可以不用手动输入密码,且只要第一次密码正确,后面在有效期内,密码错误也可以

在 Azure Functions 中使用连接字符串的正确方法

宽带连接时显示域上的用户名或密码无效而拒绝访问怎么回事