【问题标题】:Using IIS 6 App pool identity to connect to SQL server使用 IIS 6 应用程序池标识连接到 SQL 服务器
【发布时间】:2011-08-02 20:46:07
【问题描述】:

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

服务器: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 服务器,并引发异常。

【问题讨论】:

    标签: iis-6


    【解决方案1】:

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

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

    只需记住将 Windows 帐户设置为永不过期的密码,除非您记得在应用程序池发生更改时更新应用程序池(否则池将停止。)

    戴夫

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 2011-10-08
        • 1970-01-01
        • 2017-12-15
        相关资源
        最近更新 更多