2009-06-15 15 views
2

Wir verwenden MVC auf IIS6. Unsere Website wird derzeit geöffnet, aber wir müssen den Zugriff auf den Registerteil der Site beschränken, aber zulassen, dass sich diejenigen, die sich anmelden können (d. H. Aus unseren Büros), sich noch anmelden und die Site vollständig nutzen.ASP.NET MVC mit IIS6: Zugriff auf Einzelansicht blockieren (Register)

So im Büro kann Register und alle anderen Website zugreifen. Außenbüro kann nicht auf Register zugreifen und kann auf alle anderen Seiten zugreifen.

Zunächst legen wir Dateieinschränkungen für die IPs unserer Büros in der Datei register.aspx im Ordner views \ accounts fest. Wir waren uns ziemlich sicher, dass das funktionierte, aber heute entdecken wir es nicht! Welches Nachdenken macht Sinn!

So ist das möglich?

Wir müssen die anderen aspx-Seiten im Ordner views \ accounts als Ansichten verwenden, während die Registeransicht nur blockiert wird.

Hoffe das macht Sinn!

Neil

Antwort

2

Urls definiert mit ASP.NET MVC sind konfigurierbar und nicht basierend auf den Ordner oder die Datei, in der Ansicht Seite befindet. Das bedeutet, dass Sie IIS nicht verwenden können, um den Zugriff für diese Ansichtsseiten zu konfigurieren. Sie können den Zugriff auf die Controller filtern (und damit indirekt auf die Ansichtsseiten, die von den Ansichtsseiten aufgerufen werden). Dies geschieht mit Action Filtering. Zum Erstellen eines benutzerdefinierten Aktionsfilters see this page.

Also ja, es ist möglich, den Zugriff auf bestimmte Seiten abhängig von der IP-Adresse zu beschränken.

+0

wie? Haben Sie ein Beispiel, ich möchte ein paar Ansichtsseiten basierend auf IP-Adresse beschränken – Miral

1

Ich bin schon einmal auf diese Art von Situation gestoßen, aber das Problem wurde durch die Art, wie wir Anwendungen schreiben, gelöst.

Immer wenn wir eine Anwendung mit "einigen Informationen angezeigt" und "eine Möglichkeit zur Verwaltung der Daten" hatten wir immer separate UI-Projekte über die Geschäftslogik erstellt. Dies dient nicht nur der Wartbarkeit, sondern auch der Bereitstellung des öffentlichen Bits auf einer öffentlichen Website, während auf das Admin-Bit über das Netzwerk zugegriffen werden kann, so dass kein externer Zugriff möglich ist.

In Ihrem Beispiel würde das Extrahieren der zwei logischen Elemente bedeuten, dass Sie zwei separate Webprojekte mit unterschiedlichen Zugriffsregeln in IIS bereitstellen können.

Eine andere Option wäre, die IP-Adresse im ausgeführten Code für die eingeschränkte Seite zu überprüfen - IP-Adressen können gefälscht werden, also ist es keine vollkommen sichere Lösung.

Verwandte Themen