Eu tenho um diretório virtual protegido com autenticação básica. Gostaria de desabilitar a autenticação para determinados IPs, para que todas as solicitações de, por exemplo, 127.0.0.1 sejam permitidas sem solicitar credenciais. Como posso fazer isso?
Responder1
Não consegui encontrar uma maneira integrada de fazer isso acontecer. Acabei escrevendo um módulo IIS usandoas instruções da Microsoft.
O módulo verifica o endereço IP do cliente (usando HttpRequest.UserHostAddress
) e, se não estiver na lista de isentos, reimplementa a autenticação básica padrão para contas do Windows (usando a LogonUser
API e configurando HttpContext.User
como WindowsPrincipal
). O domínio de autenticação e a lista de endereços IP isentos são lidos web.config
(usando ConfigurationManager.AppSettings
).
Obstáculos incluídos:
- Eu queria isentar o próprio servidor, então adicionei
127.0.0.1
o endereço IP do servidor à lista de isentos, mas também tive que adicionar::1
(IPv6 localhost). - Estou usando isso para proteger o acesso ao hgweb e, por algum motivo, tive que alterar as entradas na
hgrc
linhaallow_push
deusername
paraDOMAIN\username
depois de ativar o plugin.