30 March 2008 ASP.NET MVC Robert Muehsig

Bereits bei meinem Membership Beitrag kam ich auf diese nette Sache zusprechen, allerdings möchte ich dies nochmal genauer aufgreifen:

Controller erweitern über bestimmte Attribute

Sicherheit:
Controller können sehr einfach abgesichert werden über die beiden Attribute von Rob Conery.

In meiner Beispielapplikation gibt es einen "EntryController", welcher bestimmte Eintrag in einer Datenbank erstellen kann oder auch auflisten, dabei sieht der Contoller momentan so aus:

image

Die "New" Methode rendert nur den View zum Erstellen eines neuen Eintrags. Das direkte erstellen passiert in der Create Methode. Beide Controller benötigen einen angemeldeten Nutzer. Dies wird einfach über das "RequiresAuthentication" Attribut geregelt. Hingegen kann jeder die Eintrag über die List Methode sehen.

Caching / Compression:
Ebenso einfach wie das sicherstellen, dass ein angemeldeter Nutzer den Controller ausführt, kann man auch Caching oder Kompression über solche Attribute steuern.

Die Views absichern

Im Regelfall wird nie ein Nutzer die direkte URL zu der View.aspx herausfinden, falls es jedoch doch mal dazu kommt, bekommt er entweder eine hässliche Fehlermeldung zu sehen (weil keine ViewDaten vorhanden sind) oder er sieht eine Seite, die ihn absolut nichts angeht.

Um dies zu vermeiden, kann man in der Web.config alle direkten Zugriffe auf die ASPX Seiten verbieten: Blocking Direct Access To Views in ASP.NET MVC

Damit sollte eure MVC Applikation sicher sein ;)


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de