我有我的实体模型和连接设置,并且您可能知道当您设置连接以存储在配置文件中时,它建议您不要存储“敏感”数据(即用户名和密码)在配置文件中,我想要做的就是允许用户自己输入该信息。
如何在代码中将其分配给连接?
我是否必须拉出字符串,修改它(通过添加用户/通道)然后重新分配连接字符串?
答案 0 :(得分:1)
听起来像桌面(不是网络应用),对吗?因为你可能没有在互联网上运行,而是在本地网络中运行,为什么不使用集成(windows)安全性而不是sql server安全性,所以必须存储登录名/密码。
答案 1 :(得分:1)
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();
}