C# SqlConnection与“连接”一起工作;集成安全性=真;但我无法连接我的登录详细信息

C# SqlConnection与“连接”一起工作;集成安全性=真;但我无法连接我的登录详细信息,c#,sql-server,authentication,sqlconnection,C#,Sql Server,Authentication,Sqlconnection,我有一些工作代码,目前放在我们的测试开发服务器上,该服务器使用集成的安全/可信连接连接到SQL server 我需要将其部署到客户机服务器,并将计划每小时运行一次,无论用户是否登录 由于用户可能未登录,我假设集成安全性将无法工作 我输入的凭据与我用于连接到dev服务器的凭据相同。我尝试了两种域名“Organization\username”,但这也不起作用 SqlConnection myConnection = new SqlConnection("User id=username;" +

我有一些工作代码,目前放在我们的测试开发服务器上,该服务器使用集成的安全/可信连接连接到SQL server

我需要将其部署到客户机服务器,并将计划每小时运行一次,无论用户是否登录

由于用户可能未登录,我假设集成安全性将无法工作

我输入的凭据与我用于连接到dev服务器的凭据相同。我尝试了两种域名“Organization\username”,但这也不起作用

 SqlConnection myConnection = new SqlConnection("User id=username;" + "Password=xxxxxx; + "Data Source=datasrc;" + "Initial Catalog=catalog; " + "connection timeout=30");

myConnection.Open();
上述代码不起作用,导致程序在运行myConnection.Open()之前“挂起”

但是,放置“
integratedsecurity=True;
”并删除字符串中的“用户id”和“密码”部分是有效的

当我尝试使用
“User id=name;“+”Password=xxxxxx;”
时,它不起作用,只是挂起

以下是在SQL Server 2014 Management Studio上尝试使用用户名和密码登录(windows身份验证工作正常)时出现的错误消息

建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问该服务器。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)(Microsoft SQL Server,错误:53)


未找到网络路径“

Integrated Security=True;
表示用于运行应用程序池的当前凭据也将用于登录SQL数据库。使用
Integrated Security=True;
和用户ID+密码是没有意义的。一个或另一个

因此,如果您的IIS实例正在使用由
User123
登录的应用程序池,并且位于该IIS实例上的.NET应用程序连接到SQL数据库,则该.NET应用程序将尝试使用
User123
登录SQL数据库,只要
Integrated Security=True;
。通常人们会这样做出于安全原因,请确保web.config中不存在明文密码。编辑:右键单击IIS管理器中的应用程序池并转到“高级设置”,可以查看应用程序池正在使用的用户


如果只有当您拥有
integratedsecurity=True;
时,它才起作用,那么这意味着只有该用户有权访问SQL数据库。我会打开SSM,导航到SQL数据库,并查看
Security
导航树下的
Login
。请记住数据库服务有一个
Login
r、 以及数据库本身,因此您可能需要在两个位置进行配置。

嗨,Omar,我不打算同时使用这两个位置。目前,集成安全性正在工作。但是,当我将其部署到服务器时,即使用户未登录,程序也将运行,因此我需要输入用户凭据。我已检查并输入用户名appears在“安全性”下的“登录”部分。是否有更好的做法在不使用集成安全性的情况下将密码存储在代码中?Well,不建议在实际源代码中内联用户名和密码。无论您是否使用集成安全性,您都应该在
网站中存储该连接字符串.config
文件(或者如果您没有制作web应用程序,可能是一个
app.config
文件)。然后您可以使用
ConfigurationManager
类检索该连接字符串。显然,您还可以加密此配置文件,如详细所述