我有一个受基本身份验证保护的虚拟目录。我想禁用某些 IP 的身份验证,以便允许所有来自 127.0.0.1 的请求而无需输入凭据。我该怎么做?
答案1
我找不到内置方法来实现这一点。最后我使用以下方法编写了一个 IIS 模块:Microsoft 的说明。
该模块检查客户端的 IP 地址(使用HttpRequest.UserHostAddress
),如果它不在豁免列表中,则重新实现 Windows 帐户的标准基本身份验证(使用 APILogonUser
并设置HttpContext.User
为WindowsPrincipal
)。身份验证域和豁免 IP 地址列表从中读取web.config
(使用ConfigurationManager.AppSettings
)。
障碍包括:
- 我想豁免服务器本身,因此我将
127.0.0.1
服务器的 IP 地址添加到豁免列表中,但还必须添加::1
(IPv6 localhost)。 - 我正在使用它来保护对 hgweb 的访问,并且由于某种原因,在启用插件后,我必须将 行中的条目
hgrc
从allow_push
更改username
为。DOMAIN\username