2012-11-12 32 views
3

我正在使用IIS7上的MVC4制作模型的第一个网站。在Windows中使用Windows身份验证和连接字符串连接到SQL 2008 R2

目前我的连接字符串看起来是这样的:

<add name="VaultEntities" 
    connectionString="metadata=res://*/Models.VaultDB.csdl|res://*/Models.VaultDB.ssdl|res://*/Models.VaultDB.msl;provider=System.Data.SqlClient; 
     provider connection string=&quot; 
     data source=sqlserver\instance; 
     initial catalog=vault; 
     integrated security=True; 
     multipleactiveresultsets=True; 
     App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 

的连接是由Visual Studio 2011自动生成的,当我通过Model First方法添加到数据库中。查询在我的开发机器上完美地在本地运行。但它不适用于IIS服务器。

我的猜测是,这是因为我的机器上我的用户帐户具有访问SQL Server和IIS时试图访问SQL服务器的用户帐户被拒绝。

在一个完美的世界,我会在我的连接字符串在SQL服务器上添加一个用户,并使用

User Id=myUsername;Password=myPassword; 

,可惜我没有这样的选择。

没有进入细节DBA的是... ...很难一起工作。

那么,有没有办法用我的AD帐户的连接字符串中登录到SQL服务器...或者,我可以让IIS自身标识为我吗?

+2

是的,您可以将运行该网站的应用程序池标识更改为您在IIS中的帐户。 – Fung

回答

5

有没有什么办法在连接字符串中使用我的AD帐号登录到SQL服务器 ......或者我可以让IIS自己识别为我吗?

您可以让应用程序池使用您想要的任何AD用户。

我不会建议使用自己的用户名,但。您在过去12个月中锁定了多少次用户名,以及您离开时会发生什么?

创建/使用服务AD帐户,在应用程序池映射它,并获得数据库管理员给DB访问该用户使用受信任的连接。对不起,您必须与DBA交谈! :-)

+1

通过选择应用程序池并单击右侧“操作”面板中的高级设置来解决。在那之后,我将“身份”编辑为与我的AD帐户相同。一直工作了30分钟左右;) – JensB

+0

很高兴你有它的工作!希望你稍后可以改进它。希望你能找到一些更好的DBA! :-) –

+0

完美答案!像魅力一样工作。谢谢。 –

2

好的,有两种选择。 1.要么你改变你的应用程序池标识一个具有数据库访问AD,这也可以通过在自己的网站的web.config文件impersonation部分做(检查此link)。 2.您可以将sql帐户添加到连接字符串中。正如我所看到的,您正在使用EF连接字符串,它与标准的sql连接字符串有点不同。但仍然与sql凭证有相同的部分,只需将integrated security = true替换为used id =...;password=...。就这样。

希望这会有所帮助。

相关问题