Iis
IIS 7:禁用某些客戶端 IP 的身份驗證
我有一個受基本身份驗證保護的虛擬目錄。我想禁用某些 IP 的身份驗證,以便允許來自例如 127.0.0.1 的所有請求而不要求提供憑據。我怎樣才能做到這一點?
我無法找到一種內置的方法來實現這一點。我最終使用Microsoft 的說明編寫了一個 IIS 模組。
該模組檢查客戶端的 IP 地址(使用
HttpRequest.UserHostAddress
),如果它不在豁免列表中,則重新實現 Windows 帳戶的標準基本身份驗證(使用LogonUser
API 並設置HttpContext.User
為 aWindowsPrincipal
)。身份驗證域和豁免 IP 地址列表從web.config
(使用ConfigurationManager.AppSettings
)讀取。絆腳石包括:
- 我想豁免伺服器本身,所以我將
127.0.0.1
伺服器的IP地址添加到豁免列表中,但還必須添加::1
(IPv6 localhost)。- 我正在使用它來保護對 hgweb 的訪問,由於某種原因,我不得不在啟用外掛後將
hgrc
’sallow_push
行中的條目從username
更改為。DOMAIN\username