【问题标题】:SQL connection string ignoring specified username & password?SQL连接字符串忽略指定的用户名和密码?
【发布时间】:2012-06-12 18:57:00
【问题描述】:

我的 SQL 连接字符串没有使用连接字符串中提供的身份验证时遇到问题。我使用自跟踪实体编写了一个 ASP.NET 应用程序,我需要访问来自两个不同服务器的数据。第一个服务器 SQLSERVER1 正在使用 Windows 身份验证,并且在域上,我能够很好地提取我的数据。然而,第二个服务器连接位于域外的另一个盒子上,我需要使用特定的登录名和密码来访问数据。我确认我在连接字符串中使用的凭据可以很好地连接到服务器。

在我的网络服务器设置中,我在 IIS7 中使用自己的凭据“Domain\AppPoolUser”运行我的应用程序池。

出于某种原因,每当我在发布到网络服务器后尝试从 SQLSERVER2 调用数据时,我都会收到以下错误,即使我已经在连接字符串中指定了凭据并且它们是有效的。但是,如果我在本地调试应用程序,则连接工作正常:用户 'DOMAIN\AppPoolUser' 登录失败。

它似乎没有使用我在连接字符串中指定的凭据,而是尝试作为应用程序池凭据进行连接。如何设置连接字符串以使用我提供的凭据? 这是我的连接字符串:

<add name="ADATrackingContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER1;Database=ADATracking;Integrated Security=True;" />  
<add name="PatientContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER2;Database=Patients;uid=PatientUser;password=123456;Integrated Security=False;" />

【问题讨论】:

  • 错误来自哪个上下文?如果是 ADATrackingContext,那么这是可以理解的,因为您在该连接上使用了集成安全性。
  • ADATrackingContext 与窗口身份验证一起正常工作。错误来自 PatientContext。
  • 对不起,我应该在我原来的问题中更清楚。问题连接字符串是 PatientContext。
  • PatientContext 类是在哪里创建的?在 ASP.Net 网站/Web 应用程序中还是在 ASP.NET 站点引用的类库中?如果它在类库中,它可能使用了在设计时创建的类库中的连接字符串。在开发环境中调试时,您是否为 PatientContext 使用集成安全性?

标签: asp.net sql entity-framework linq-to-sql connection-string


【解决方案1】:

不确定是否重要,但用户应该是User Id= 而不是uid=

【讨论】:

    【解决方案2】:

    ADATrackingContext 连接字符串将尝试使用 Domain\AppPoolUser 域帐户登录,因为您已设置 Integrated Security = true。由于您没有 Domain\AppPoolUser 作为数据库的登录名,因此您将收到您描述的错误。

    仔细检查以确保您将正确的连接字符串传递给您的 DbContext。

    【讨论】:

    • ADATrackingContext 工作正常,正如您所描述的那样,可以访问第一台服务器。我遇到了 PatientContext 连接字符串的问题。只需仔细检查发送到 DbContext 的字符串,它是正确的。
    • 为了进一步说明,我使用 Code-First 开发。我的 Context 类与我的连接字符串同名。我只是在两个上下文中运行一个简单的 linq 查询来将数据推送到一个列表中。
    【解决方案3】:

    看起来错误是因为我试图在我的客户端页面通过 ADATracking 连接字符串验证之前提取数据。我将数据调用移至 HomeController.cs 而不是 Global.asax 文件,现在一切正常。我的错。

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 1970-01-01
      • 2011-04-15
      • 2016-11-28
      • 1970-01-01
      • 2016-12-30
      • 2014-06-11
      • 1970-01-01
      • 2012-08-27
      相关资源
      最近更新 更多