我有一個受基本驗證保護的虛擬目錄。我想停用某些 IP 的身份驗證,以便允許來自 127.0.0.1 等的所有請求,而無需詢問憑證。我怎樣才能做到這一點?
答案1
我無法找到一種內建的方法來實現這一點。我最終使用編寫了一個 IIS 模組Microsoft 的說明。
此模組檢查用戶端的 IP 位址(使用HttpRequest.UserHostAddress
),如果不在豁免清單中,則重新實作 Windows 帳戶的標準基本驗證(使用 APILogonUser
並設定HttpContext.User
為 a WindowsPrincipal
)。從中讀取身份驗證網域和豁免 IP 位址清單web.config
(使用ConfigurationManager.AppSettings
)。
絆腳石包括:
- 我想豁免伺服器本身,因此我將
127.0.0.1
伺服器的 IP 位址加入到豁免清單中,但也必須添加::1
(IPv6 localhost)。 - 我使用它來保護對 hgweb 的訪問,並且出於某種原因,我必須在啟用插件後將
hgrc
sallow_push
行中的條目從username
更改為 。DOMAIN\username