为什么EntityConnection对象不包含登录密码?
题
我有一个使用EF CTP5的应用程序。
在这种特殊情况下,我需要降级到一些经典的ado.net(为了在存储过程中读取多个结果集,EF不支持它)。
因此,我试图使用 现有连接字符串 来自 EntityConnection
对象,这样:
var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown
当我调试时,我看到 ConnectionString
不包含密码,仅包含数据源,用户名,数据库等。
这是他们删除它的安全性吗? EF是否将密码隐藏在某处,并且仅在执行存储过程本身时才使用?
EF连接字符串不像经典的Ado.net连接字符串,因为它具有元数据信息。
因此,看起来我将不得不剥离我需要的连接字符串的一部分,然后将其放在web.config中,然后将其传递到存储库中。
当然,必须有更好的方法!
解决方案
尝试添加“ Persist Security Info = True;”到上下文连接字符串。这对我有用。
不隶属于 StackOverflow