Ich versuche, eine Anwendung in IIS7 mit .NET-Autorisierungsregeln zu sichern.IIS7 Authorization Rules/Config - Perpetually
Standardmäßig ermöglicht der Webserver allen Benutzern den Zugriff (der vererbt wird).
Ich habe hinzugefügt, nur für dieses eine Anwendungsverzeichnis, einen Befehl zum Verweigern aller Benutzer sowie einen Befehl erlauben für bestimmte Benutzer.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow users="myusername" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
Ich habe Windows-Authentifizierung aktiviert ist, und das kann ich überprüfen, ohne die Zeile, die meine REMOTE_USER MYDOMAIN \ myusername ist.
Wenn ich jedoch versuche, alle Benutzer zu verweigern, werde ich mit dem typischen Windows-Benutzername/Passwort-Feld aufgefordert. Wenn ich das Passwort des Benutzernamens eintrage, erscheint die Eingabeaufforderung 3 Mal erneut, bis ich schließlich eine Fehlermeldung erhalten habe. (Ich habe auch vergebens versucht)
In der Ereignisanzeige scheint es, als ob meine Anmeldung mit dem Benutzernamen und PW in der Prüfung erfolgreich war ... und zu diesem Punkt wird mein Konto nicht gesperrt aus (was es wäre, wenn ich mich nicht immer wieder einloggen würde). Es ist also so, als ob ich mich anmelde, aber die Konfiguration sieht nicht, dass das, was ich eingegeben habe, mit meinem Login übereinstimmt.
Unten ist die Botschaft, die ich sehe (auch wenn sie von dem Server mit localhost verbinden):
** Zugriff verweigert.
Beschreibung: Beim Zugriff auf die Ressourcen, die zur Ausführung dieser Anforderung erforderlich sind, ist ein Fehler aufgetreten. Der Server ist möglicherweise nicht für den Zugriff auf die angeforderte URL konfiguriert.
Fehlermeldung 401.2 .: Nicht autorisiert: Anmeldung fehlgeschlagen aufgrund der Serverkonfiguration. Stellen Sie anhand der von Ihnen angegebenen Anmeldeinformationen und der auf dem Webserver aktivierten Authentifizierungsmethoden sicher, dass Sie berechtigt sind, dieses Verzeichnis oder diese Seite anzuzeigen. Kontaktieren Sie den Administrator des Web-Servers für weitere Unterstützung. **
Es scheint auch, dass dieser Ansatz ein IIS6-Ansatz für ASP.NET ist. IIS7 Authorization ist ein bisschen anders. Dafür habe ich basierte Regeln, aber diese scheinen nichts zu tun. Ich habe eines von hinzugefügt und es scheint nichts zu leugnen. Dies ist übrigens IIS 7.5. Seltsamerweise befindet sich das Symbol für .NET-Autorisierungsregeln unter ASP.NET und scheint dem IIS6-Ansatz zu folgen. Vielleicht ist die IIS7-Autorisierung nicht konfiguriert oder installiert? –
enforge
Es scheint, dass die IIS7-URL-Autorisierung nicht auf meinem System installiert ist. Es ist stattdessen etwas anderes mit demselben Namen installiert, das die IIS 6-Version ist, die anders funktioniert. Schlechtes, freches Microsoft! Ich werde mit einer vollständigen Antwort aktualisieren, wenn dies zu einer Lösung führt. – enforge