如何通过程序将密码分配给ConnectionString
本文关键字:分配 ConnectionString 密码 何通过 程序 | 更新日期: 2023-09-27 17:58:44
我在App.config
文件中定义了ConnectionString
,我选中了不包括敏感数据的选项,因此密码不会出现在连接字符串中。在应用程序代码中,我使用实体框架,访问数据库如下:
using (var db = new Entities())
{
List<DATA> d = db.DATA.ToList();
}
我想通过DB密码来验证用户——用户在应用程序启动时输入密码。问题是,当我不在代码中手动处理ConnectionString
时,如何将此密码添加到连接字符串中?
我得到的越远:
ConnectionStringSettings conn = ConfigurationManager.ConnectionStrings["Entities"];
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(conn.ConnectionString);
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(entityBuilder.ProviderConnectionString);
sqlBuilder.Password = "pwd";
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
ConnectionStringSettings newConn = new ConnectionStringSettings("Entities",entityBuilder.ConnectionString);
但这仍然不起作用,我无法将新的连接字符串附加到ConfigurationManager.ConnectionStrings
——它说它是只读值。如何克服这一点?
您不能分配ConfigurationManager.ConnectionStrings
,因为这只反映了您的App.config
,而您的应用程序无法更改。
但是你可以告诉EF使用哪个连接字符串:
using (var db = new Entities(entityBuilder.ToString()))
{
List<DATA> d = db.DATA.ToList();
}