Frage

Lassen Sie uns sagen, dass ich die folgenden in einer web.config haben:

<allow roles="Developers" />
<deny users="*"/>

Dies sperrt den Zugriff auf ASPX, ASMX und anderen .NET-Dateitypen, aber es erlaubt nach wie vor nicht autorisierte Benutzer statische Dateien wie image.jpg zu öffnen. Ich verstehe, warum die web.config nicht für Autorisierungsinformationen gefragt, wenn jemand für image.jpg fragt (es ist kein .NET-Typ, und IIS kann es umgehen), aber wie kann ich sperren Sie eine gesamte Anwendung nach unten?

Tipps die ich gefunden habe Online beinhaltet:

  • erstellen <location> Eintrag für das betreffende Verzeichnis und IIS / .NET wird es abholen. (Es ist nicht zu sein scheint.)
  • müssen Sie Ihre eigenen ISAPI-Filter schreiben und alle sensiblen Dateien mit Erweiterungen, dass kartieren.
  • Sie brauchen nicht Ihre eigenen ISAPI-Filter zu schreiben -. Nur die Erweiterungen abbildet es aspnet_isapi.dll tun
  • Sie müssen nicht IIS überhaupt bearbeiten, nur für Ihre Erweiterungen einen Httphandler-Eintrag in der web.config erstellen. (Ich würde wirklich lieber nicht versuchen, dies in der Anwendung für jede Erweiterung zu tun.)

All dies funktioniert ganz so einfach, wie ich es in Apache zu sein erinnern. Was ist die einfachste Sache, die einen Besucher nach einem Passwort fragen könnte funktionieren und dient nicht alle Dateien (statisch oder nicht) für jeden Benutzer, die es nicht haben?

War es hilfreich?

Lösung

Aktivieren Wild card Zuordnung für IIS 6 . Dadurch werden alle Dateien über die ASP.NET-Pipeline, Garantieformular Auth geschieht für alle Dateien senden. Es wird die Leistung beeinträchtigt (weiß nicht, wie viel).

Für IIS 5, um ein Upgrade auf IIS 6.

Sie listen 4 Ideen:

  • Standort funktioniert nur, wenn Sie Platzhalter-Mapping (oder spezifische Erweiterungen abgebildet) haben.

  • Wer will einen ISAPI-Filter schreiben? Sie können nicht tun, es leicht in verwalteten langauges, wenn Sie IIS7 haben. Und wer will einen c ++ ISAPI-Filter schreiben?

  • Wild Card-Mapping mit der obigen Einschränkung funktioniert (Performance)

  • Wieder letzte Option wird nicht funktionieren, ohne diese spezifische Erweiterungen mit IIS registrieren und Routing sie durch aspnet.

Andere Tipps

Ein netter einfacher Weg ist, um IIS zu aktualisieren 7- es jetzt verfügt über eine integrierte Pipeline.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top