2015-09-04 125 views
1

我开发了一个ASP.Net网站。我面对的问题是当我在我的系统上使用web.config中的连接字符串(“Data Source =。\; Initial Catalog = ITS; Integrated Security = True”)在IIS中运行应用程序时,它运行良好。我连接到数据库并显示数据。SQL连接使用域用户名和密码

我已经使用IIS中的ASP.NET包在域计算机上安装了数据库。这里的问题是它没有连接到数据库。我试图使用这样的连接字符串:“Data Source =。\; Initial Catalog = ITS; UID = S1 \ ISLWW74562S; PWD = delta $%67; Integrated Security = True”

其中S1是域名而ISLWW74562S是用户名。

它给出了一个错误不能找到登录S1 \ ISLWW74562S $

谁能帮助我如何和什么是使用连接字符串域计算机上的正确方法。

感谢

回答

2

删除UID = S1 \ ISLWW74562S; PWD =三角洲$从连接字符串%67,而是在IIS中创建一个特殊的应用程序池,为您的网站和配置这样的应用程序池下运行域帐户。

查看this以查看如何设置应用程序池以使用自定义帐户。

此外,请确保您使用的域帐户具有您要使用的SQL数据库所需的访问权限。

如果您使用的是Microsoft SQL Server,那么您需要使用SQL Management Studio为域用户创建一个新的登录名并为其授予对您正在使用的数据库的适当访问权限。

+0

当我使用SQL Management Studio时,必须以管理员身份运行它。此处使用的管理员用户名是ISLWW74562S \ a154ey,管理员密码是delta $%67。然后,我可以运行SQL服务器并查看其中的表格和详细信息。我应该在连接字符串中使用此管理员用户名和密码吗? –

+0

将密码放入连接字符串是一个安全问题。我提出的是,你让用于在IIS中运行你的网站的应用程序池运行在有数据库访问权限的帐户下(例如ISLWW74562S \ a154ey)。 –

+0

错误仍然存​​在。它说“登录失败S1 \ ISLWW74562S $”。其中S1 =域名和ISLWW74562S $ =计算机名称。即使我已经在SQL Server中为名为S1 \ ISLWW74562S $的数据库添加了一个登录名,赋予其db_owner和sysadmin权限。 –

2

当您使用集成安全性时,您不会指定用户名和密码。 Sql Server不会允许你这样做。相反,它正在寻找由域控制器发布的令牌,这就是它所能接受的。

通过使用IIS中的Impersonation功能或设置IIS的应用程序池以作为该用户帐户运行,可以为您的应用程序获取这样的令牌。

+0

问题是如果我必须通过以管理员模式运行应用程序来进行系统中的任何类型的更改。即使我必须以管理员身份运行IIS。我会怎么做 –