IIS 7:禁用某些客户端IP的身份validation

我有一个受基本authentication保护的虚拟目录。 我想要禁用某些IP地址的身份validation,以便所有来自例如127.0.0.1的请求都被允许而不要求提供凭证。 我怎样才能做到这一点?

我无法find一个内置的方法来实现这一点。 我用http://learn.iis.net/page.aspx/170/developing-a-module-using-net/上的说明写了一个IIS模块。

模块检查客户端的IP地址(使用HttpRequest.UserHostAddress ),如果它不在免除列表中,则重新实现Windows帐户的标准基本authentication(使用LogonUser API并将HttpContext.User设置为WindowsPrincipal )。 从web.config (使用ConfigurationManager.AppSettings )读取authentication域和免除IP地址列表。

绊脚石包括:

  • 我想豁免服务器本身,所以我添加了127.0.0.1和服务器的IP地址到免除列表,但也必须添加::1 (IPv6本地主机)。
  • 我使用这个来保护对hgweb的访问,由于某种原因,我必须在启用插件后,将hgrcallow_push行中的条目从username更改为DOMAIN\username