从代码中将凭据添加到连接字符串

Add credentials to connection string from code

我有一个使用用户名和密码的连接字符串。但是,凭据存储为环境变量(我正在使用 OpenShift),因此我想在运行时从代码中添加凭据(用户名和密码)。

虽然我可能可以使用 reg-ex 或其他一些创造性的想法来实现这一点,但它似乎是 C# 默认支持的东西。我找到了 this answer in another post, suggesting to use an EntityConnectionStringBuilder,但这仅适用于 .NET Framework(我使用的是 .NET Core 3.1)。 .NET Core 是否有类似的东西(或者甚至更智能)?

此外,我正在使用 Entity Framework 核心,因此任何修改连接本身而不是连接字符串的东西都不是真正的选择。

如果您有权访问配置文件,类似这样的方法可能会起作用

<connectionStrings>
<add name="Connection" connectionString="Url=https://smth.com; Username=Username; Password=Password" />
</connectionStrings>

你只需要访问连接名称

正如@CodeCaster 在评论中提到的那样——答案是 SqlConnectionStringBuilder。它允许向现有连接字符串添加部分,例如 User ID。因此,要将用户名和密码添加到 appsettings.json 中的连接字符串,您可以这样做:

string baseConnStr = Configuration.GetConnectionString("MyConnectionString");

var builder = new SqlConnectionStringBuilder(baseConnStr);
builder.UserID = "Test";
builder.Password = "Abc123";

var connStr = builder.ConnectionString