2011-04-11 87 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。