Iis

IIS 7.5:在“連接為”對話框中,不能將“特定使用者”設置為應用程序池標識?

  • July 24, 2014

我有很多網站和應用程序都有自己的應用程序池,都使用 AppPoolIdentity。應用程序池標識很好,因為您可以設置文件系統權限並基於它們添加 SQL Server 使用者,而無需管理任何密碼。

在決定這些網站需要添加基本身份驗證之前,我的設置執行良好。這很好,除了 IIS 絕對堅持使用您提供的標識,而不是配置的應用程序池標識,而不管應用程序池本身的任何設置。

問題似乎在於Connect As對話。我把它設置為使用Application user (pass-through authentication). 除了混淆命名之外,這個選項顯然對我不起作用。所以我嘗試Specific user改用。

Set Credentials對話框具有欺騙性,因為它將接受IIS AppPool\[appPool]沒有密碼的表單的應用程序池使用者,但是當您訪問該站點時,您會收到以下錯誤消息:

HTTP Error 500.19 - Internal Server

The requested page cannot be accessed because the related configuration data for the page is invalid.

Config Error: Can not log on locally to `[websitePath]` as user `IIS AppPool\[appPool]` with virtual directory password

Config File: `\\?\C:\inetpub\temp\apppools\[appPool]\[websiteName].config`

Config Source

 153: `<application path="/" applicationPool="[appPool]">`

 154: `<virtualDirectory path="/" physicalPath="[websitePath]" userName="IIS AppPool\[appPool]" />`

 155: `</application>`

這是 Microsoft 對該<virtualDirectory>元素的參考。打開此配置文件不會顯示任何有用的資訊。我嘗試添加password=""無濟於事。

有什麼辦法可以實現我想要實現的目標嗎?理想情況下,無需向每個站點添加模組或其他特殊程式碼。

我最終通過創建一個基於CustomBasicAuth的精簡自定義模組並在伺服器級別添加它來解決我的問題(沒有配置功能,因為在機器級別添加自定義配置非常繁瑣——你不能只引用一個配置像您可以在 web.config 文件中一樣從程序集中提取部分)。這需要以 .NET 2.0 為目標,對程序集進行強命名,並將其添加到 GAC。我將程式碼修改為僅執行身份驗證,並且不設置使用者主體。

引用自:https://serverfault.com/questions/613420