【发布时间】:2016-01-12 08:40:26
【问题描述】:
我确实在客户现场遇到了一个相当奇怪的行为:
我的 ASP.NET 应用程序尝试使用 web.config 中指定的连接字符串连接到数据库。
这在所有情况下都可以正常工作,但有一种情况 - 由于安全权限,该特定客户需要打开集成安全性。 奇怪的是,现在应用程序尝试连接到另一个数据库,而不是定义为“初始目录”的数据库。
我已经仔细检查了连接字符串是否有任何拼写错误。
查询中没有 USE 语句。基本上除了这个连接字符串之外,没有其他东西告诉应用程序连接到哪里。
如果相关 - 它正在使用 EntityClient 提供程序。
连接字符串(当然有些部分改变了):
<add name="ConnName" connectionString="metadata=... provider connection string="data source=SERVER;initial catalog=DB;persist security info=True;Integrated Security=true;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
【问题讨论】:
-
您是在询问有关连接字符串的问题而没有实际向我们显示连接字符串?可以提供一下吗?
-
@Thorarins:代码的哪一部分与您的意见相关? Model直接绑定到这个连接字符串,连接由EF完成,不涉及特殊代码。
-
@AlexanderDerck:不,只有这一个连接字符串 - 软件安装在客户站点。
-
用户登录到机器(因为它使用 Windows 安全)是否设置了默认数据库?他们是否有权访问原始连接字符串中设置的数据库“DB”?
-
@Ruskin:我已经在等待从他们的 DBA 那里获得这些信息。至少访问工作正常 - MS SQL Server Management Studio 确实使用 Windows 身份验证成功连接。
标签: asp.net entity-framework connection-string integrated-security