從IIS

2012-10-31 47 views
0

連接到SQL數據庫這是我的連接字符串,使Web服務(託管在IIS,ApplicationPoolIdentity下運行),用於連接到數據庫從IIS

<add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl; 
provider=System.Data.SqlClient;provider connection string='Data Source=TestMachine;Initial Catalog=AdventureWorks; 
Integrated Security=True;Connection Timeout=60;multipleactiveresultsets=true'" providerName="System.Data.EntityClient" /> 

當我嘗試訪問我正在現場例外:用戶MyDomain \ TestMachine $登錄失敗。

爲什麼IIS試圖使用TestMachine連接而不是我的用戶帳戶(例如MyDomain \ TestUser)? 我相信的原因可能是因爲它託管在使用機器信譽的ApplicationPoolIdentity下。

如何指定它使用發出請求的用戶的上下文,而不必在自定義標識下運行應用程序(即,我希望它在ApplicationPoolIdentity下繼續運行)?

如果我在我的web.config文件中設置<identity impersonate = true/>',那麼我可以從IIS服務器本地訪問本地站點並訪問數據庫工作,但隨後遠程訪問站點失敗。我的Web服務正在使用Windows身份驗證。對此有何想法?

回答

1

您需要啓用Windows身份驗證和ASP.NET模擬IIS中

然後在你的web.config

<system.web> 
    <authentication mode="Windows" /> 
    <identity impersonate="true" /> 
</system.web> 
+0

我有同樣的事情,除了冒充= 「假」。如果我設置impersonate =「true」,那麼我無法從遠程機器訪問網站。 –