Tengo un directorio virtual protegido con autenticación básica. Me gustaría deshabilitar la autenticación para ciertas IP, de modo que todas las solicitudes de, por ejemplo, 127.0.0.1 se permitan sin solicitar credenciales. ¿Cómo puedo hacer esto?
Respuesta1
No pude encontrar una forma integrada de hacer que esto suceda. Terminé escribiendo un módulo IIS usandolas instrucciones de Microsoft.
El módulo verifica la dirección IP del cliente (usando HttpRequest.UserHostAddress
) y, si no está en la lista de exentos, vuelve a implementar la autenticación básica estándar para cuentas de Windows (usando la LogonUser
API y configurando HttpContext.User
a WindowsPrincipal
). El dominio de autenticación y la lista de direcciones IP exentas se leen web.config
(mediante ConfigurationManager.AppSettings
).
Los obstáculos incluyeron:
- Quería eximir el servidor en sí, así que agregué
127.0.0.1
la dirección IP del servidor a la lista de exentos, pero también tuve que agregar::1
(IPv6 localhost). - Estoy usando esto para proteger el acceso a hgweb y, por alguna razón, tuve que cambiar las entradas en
hgrc
laallow_push
línea deusername
aDOMAIN\username
después de habilitar el complemento.