2 Stimmen

ASP.NET MVC mit IIS6: Blockieren des Zugriffs auf eine einzelne Ansicht (registrieren)

Wir verwenden MVC auf IIS6. Unsere Website wird derzeit geöffnet, aber wir müssen den Zugang zum Registerteil der Website einschränken, aber denjenigen, die sich registrieren können (d.h. von unseren Büros aus), erlauben, sich trotzdem anzumelden und die Website vollständig zu nutzen.

So kann das interne Büro auf das Register und alle anderen Seiten zugreifen. Das Büro außerhalb kann nicht auf das Register zugreifen, aber auf alle anderen Seiten.

Zunächst haben wir Dateibeschränkungen für die IPs unserer Büros in der Datei register.aspx in den Ansichten \accounts Ordner. Wir waren uns ziemlich sicher, dass das funktioniert, aber heute haben wir festgestellt, dass es das nicht tut! Wenn man darüber nachdenkt, macht das sogar Sinn!

Ist dies also möglich?

Wir müssen die anderen aspx-Seiten in den Ansichten haben \accounts Ordner als Ansichten verwendet werden können, während nur die Registeransicht blockiert wird.

Ich hoffe, das macht Sinn!

Neil

2voto

Michael Punkte 770

Mit ASP.NET MVC definierte Urls sind konfigurierbar und basieren nicht auf dem Ordner oder der Datei, in der sich die Ansichtsseite befindet. Dies bedeutet, dass Sie IIS nicht verwenden können, um den Zugriff für diese Ansichtsseiten zu konfigurieren. Sie können den Zugang zu den Controllern (und damit indirekt auch zu den Ansichtsseiten, die von den Ansichtsseiten aufgerufen werden) filtern. Dies geschieht mit Aktion Filterung . Wie man einen benutzerdefinierten Aktionsfilter erstellt siehe diese Seite .

Ja, es ist also möglich, den Zugang zu bestimmten Seiten abhängig von der IP-Adresse zu beschränken.

1voto

Fenton Punkte 221749

Ich habe diese Art von Situation schon einmal erlebt, aber das Problem wurde durch die Art und Weise gelöst, wie wir Anwendungen schreiben.

Wann immer wir eine Anwendung mit "einigen angezeigten Informationen" und "einer Möglichkeit zur Verwaltung der Daten" hatten, haben wir immer separate UI-Projekte über der Geschäftslogik erstellt. Dies dient nicht nur der Wartungsfreundlichkeit, sondern bedeutet auch, dass der öffentliche Teil auf einer öffentlichen Website bereitgestellt werden kann, während auf den Verwaltungsbereich über das Netzwerk zugegriffen werden kann - es gibt also überhaupt keinen externen Zugriff.

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

Eine andere Möglichkeit 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, daher ist dies keine völlig sichere Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X