2012-01-11 45 views
0

定义了一个SQL Server,它只允许用户x(在域中)连接到并仅通过使用Windows身份验证。
我正在使用用户x成功连接到计算机。
我正在从Visual Studio中成功运行我的网站。
但是,当我尝试访问我的网站在IIS上失败,因为它使用的是不同于x的用户:
当我的ASP.NET网站尝试连接失败时,因为它使用的是用户y。
连接字符串未指定使用Windows身份验证的用户和密码。
用户y从哪里来?它是IIS安装或登录的用户?使用未知用户连接到SQL Server的IIS/ASP.NET

SQL Server不是我的,所以我无法添加用户或在那里更改身份验证方法。

有没有一种方法可以让IIS/ASP.NET模仿(是这个词)用户x?

+0

IIS以本地系统帐户运行,并且依赖于它的所有服务。 – kroiz 2012-01-12 09:29:42

回答

1

你有集成安全性=真

如果是这样,它会尝试使用匿名/ IIS_USER帐户访问数据库,而不是连接字符串中的内容。

+0

是的,连接字符串具有“Integrated Security = True”,但使用的用户不是匿名/ IIS_USER。但是,一旦我添加到web.config身份impersonate = true,那么即使我添加到web.config身份用户是匿名/ IIS_USER userName =“x” – kroiz 2012-01-12 07:07:13

+1

@kroiz你是否也传递连接字符串中的凭据? – user1231231412 2012-01-12 11:44:40

+0

不,我没有。这样做,问题就解决了。 :) 非常感谢。 所以总结一下:在web.config中我们有这样的模拟:并且在连接字符串中我也有用户标识和密码。 – kroiz 2012-01-12 13:13:00

1

看看这些链接的帮助:在连接字符串中IIS ImpersonateIIS 7 Config

+0

我不确定你使用的是哪个版本的IIS! – Amn 2012-01-11 22:06:58

+0

我使用的是IIS6,我也试过模拟。我编辑了web.config并添加了一个实体来模拟userName x。然后,当我连接时启动Web应用程序时,会显示一个新的对话框(为什么是这样?),询问用户和密码,我输入用户名和密码(尽管web.config具有用户名(x)和密码定义的模拟)并且仍然连接失败,因为使用连接的实际用户是匿名/ IIS_USER。 – kroiz 2012-01-12 07:26:50