在代码中为EF分配凭据(用户名/密码)

本文关键字:用户 密码 代码 EF 分配 | 更新日期: 2023-09-27 17:52:44

我有我的实体模型和连接设置,你可能知道当你设置连接存储在配置文件中,它建议你不要存储"敏感"数据(即用户名和密码)在配置文件中,我想做的是允许用户自己输入信息。

如何在代码中将其分配给连接?

我必须拉字符串,修改它(通过添加用户/通行证),然后重新分配连接字符串吗?

在代码中为EF分配凭据(用户名/密码)

public class MyContext : DbContext
{
    // Add a constructor that takes a connection string
    public MyContext(string connString)
        : base(connString)
    {         
    }
}
// Call this method from a page or controller
public void ConnectToTheDatabase(string username, string password)
{
    // create the connection string; I like to user the builder
    System.Data.Common.DbConnectionStringBuilder builder 
        = new System.Data.Common.DbConnectionStringBuilder();
    builder.Add("Server", "tcp:asdfewsdfgwe.database.windows.net,1422");
    builder.Add("Database", "supersonic_db");
    builder.Add("User ID", username);
    builder.Add("Password", password);
    builder.Add("Trusted_Connection", "False");
    builder.Add("Encrypt", "True");
    builder.Add("Connection Timeout", "30");
    var connString = builder.ToString();
    // Set the connection string
    MyContext context = new MyContext(connString);
    // Test with something simple
    context.Database.Connection.Open();
    string version = context.Database.Connection.ServerVersion;
    version = version.ToUpper();
}

听起来像一个桌面(而不是一个web应用程序),对吗?由于您可能不是在Internet上运行,而是在本地网络中运行,为什么不使用集成(windows)安全性来代替SQL server安全性,并且根本不必存储登录名/密码。