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:
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 ;)