2011-02-11 110 views
0

我在配置我的ASP.NET web.config和我的IIS網站以獲取我想要的設置時遇到問題。這是我想在一天結束的時候:ASP.NET,IIS安全設置Windows身份驗證和SQL Server訪問

  • 應用程序使用特定的NT ID
  • 的NT ID用於連接到SQL Server是不是在web.config中連接到SQL Server。或者至少它的密碼不是。
  • 我可以使用HttpContext.Current.User.Identity.Name(或其他方式)來獲取連接到應用程序的real用戶的NT ID。

如果我在Visual Studio 2008中安裝ASP.NET 3.5,這基本上都在本地工作。但是當我部署到IIS時,我可以成功獲得前兩個子彈,但是我無法獲得第三個子彈。 Identity.Name爲空。我現在部署的方式是在web.config中將模擬設置爲true,並且IIS將匿名用戶設置爲要連接到SQL Server的NT ID,從而啓用匿名訪問。

我使用連接到SQL Server的連接字符串如下所示:

Server=[My Server];Database=[My DB];Trusted_Connection=Yes; 

我已經嘗試設置授權,這是在其他職位的建議,但這隻會Internet Explorer中彈出一個登錄框。

這是運行IIS 6.0的Windows Server 2003框。

這可能是一個愚蠢的問題,和/或重複的問題。但是我做了大量的搜索和試驗和錯誤,我似乎無法獲得魔法設置。

+0

看來你希望應用程序的用戶是連接到數據庫的用戶ID? –

回答

0

默認情況下,機器\ ASPNET帳戶或NETWORK_SERVICE帳戶,具體取決於您使用的IIS版本(我不確定IIS 7是否使用NETWORK_SERVICE,但是有6個)。如果您需要其他帳戶,則將模擬應用於配置文件(包括用戶名和密碼)以運行帳戶。現在您可以使用aspnet_regiis實用程序對config部分的這一部分進行加密。但你必須提供一個帳戶。如果沒有這個,我不認爲你可以逃脫,除非可以通過IIS完成。

HTH。

0

這被稱爲Double-Hop Problem,並禁止將用戶憑據轉發給第三方。當他們瀏覽一臺機器時,針對另一臺機器上的站點(第一跳)並將證書轉發給第三臺機器(第二跳)時,會發生這種情況。

如果您在同一臺機器上託管IIS和SQL Server,則不會出現此問題。

在此發佈更多技術細節How to use the System.DirectoryServices namespace in ASP.NET,這解釋了雙跳問題以及主要和次要令牌。

相關問題