sql-server-2008 - 为什么 EntityConnection 对象不包含登录密码?

标签 sql-server-2008 ado.net connection-string entity-framework-ctp5 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;”到上下文连接字符串。这对我有用。

关于sql-server-2008 - 为什么 EntityConnection 对象不包含登录密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320610/

相关文章:

.net - 在运行时将 ADO.Net DataSet 指向不同的数据库?

c# - 如何从 id 数组中获取一组行?

c# - 如何从sql中的每组中选择20个随机问题?

sql - sys.dm_exec_procedure_stats - 我解释正确吗

sql-server - SQL 服务器 : connect to local instance by using

php - 无法将 Yii 与本地 SQL Server 2012 连接

c# - 从 web.config 获取多个连接字符串

sql - 使用全文搜索查找完全匹配

c++ - 崩溃填充数据适配器

sql-server - 如何在没有 DSN 的情况下连接到 ColdFusion 7 中的 SQL Server?