2011-04-11 71 views
1

我在Server 2003和SQL Server 2008中使用IIS 6,它位于单独的盒子上。现在我想使用网站的应用程序池标识连接到SQL服务器。 但不知何故,当我在page_load方法中显示标识时,它总是显示使用哪个网站浏览的windows帐户。我已经给出了下面的细节使用IIS 6应用程序池标识连接到SQL服务器

服务器:Windows Server 2003 数据库:SQL Server 2008。 Web服务器和数据库位于不同的机器上。 网站:使用使用自定义域帐户运行的自定义应用程序池。网站禁用了匿名功能并启用了Windows身份验证。在web.config中未启用模拟。

我用下面的代码显示的凭据:

Response.Write(HttpContext.Current.User.Identity.Name.ToString()); 
     WindowsIdentity id = WindowsIdentity.GetCurrent(); 
     Response.Write(id.Name); 

现在我需要使用应用程序池的身份连接到数据库的方式。请让我知道如何做到这一点。如果我设置网站匿名帐户作为应用程序池身份一切正常,但我不想这样做。现在,身份验证仅作为匿名流向SQL服务器,并且会引发异常。

回答

0

我不确定IIS6,但在IIS8中......在问题中的应用程序池的高级设置中,有一个标识部分。将其设置为您要使用的Windows凭据。还要将“加载应用程序配置文件”设置为true。

然后在你的应用程序中,你只需要设置你的连接字符串来使用trusted_connection而不是SQL服务器的用户名和密码。

只记得设置Windows帐户具有永不过期的密码,除非你还记得当它的变化来更新应用程序池(或池将停止。)

戴夫

0

这听起来像您启用了Windows身份验证并正在使用IE连接到该网站?在这种情况下,Windows身份被传递给IIS。

相关问题