Ich habe ein virtuelles Verzeichnis, das mit einer Basisauthentifizierung geschützt ist. Ich möchte die Authentifizierung für bestimmte IPs deaktivieren, sodass alle Anfragen von z. B. 127.0.0.1 ohne Abfrage von Anmeldeinformationen zugelassen werden. Wie kann ich das tun?
Antwort1
Ich konnte keine integrierte Methode finden, um dies zu erreichen. Ich habe schließlich ein IIS-Modul geschrieben mitdie Anleitung von Microsoft.
Das Modul überprüft die IP-Adresse des Clients (mit HttpRequest.UserHostAddress
) und implementiert, wenn sie nicht auf der Ausnahmeliste steht, die standardmäßige Basisauthentifizierung für Windows-Konten erneut (mit der LogonUser
API und Einstellung HttpContext.User
auf WindowsPrincipal
). Die Authentifizierungsdomäne und die Liste der ausgenommenen IP-Adressen werden ausgelesen web.config
(mit ConfigurationManager.AppSettings
).
Zu den Stolpersteinen gehörten:
- Ich wollte den Server selbst ausnehmen, also habe ich
127.0.0.1
die IP-Adresse des Servers zur Ausnahmeliste hinzugefügt, musste aber auch::1
(IPv6-Localhost) hinzufügen. - Ich verwende dies, um den Zugriff auf hgweb zu schützen, und aus irgendeinem Grund musste ich nach der Aktivierung des Plugins die Einträge in
hgrc
derallow_push
Zeile vonusername
in ändern.DOMAIN\username