ASP.NET MVC 3 Nutzer Authentication mit Attributen


Bei einer Webseite mit einer Nutzerverwaltung, ist mit das wichtigste das man nicht einfach die Daten anderer User betrachten darf oder sich Zugriff zum Adminbereich verschafft, nur weil man etwas mit der URL “umherspielt”.

Dafür gibt es zum einen das Attribut “Authorize” was direkt mitgeliefert wird und prinzipiell prüft, ob überhaupt ein User eingeloggt ist und wenn nicht wird auf die Loginseite verwiesen.

Dann besteht aber noch die Möglichkeit ein Custom Attribut zu erstellen, in dem man alle wichtigen Daten für den aktuellen Controller und den Aufgerufenen View überprüfen kann.

Zum einen haben mir hier die folgenden Links sehr weitergeholfen:

http://msdn.microsoft.com/en-us/library/gg416513%28VS.98%29.aspx

http://msdn.microsoft.com/en-us/library/dd381609%28v=VS.98%29.aspx

http://geekswithblogs.net/brians/archive/2010/07/08/implementing-a-custom-asp.net-mvc-authorization-filter.aspx

Dann noch ein kleines Beispiel wie so eine Umsetzung aussehen könnte. Als erstes benötigen wird eine neue Klasse die vom AuthorizeAttribute ableitet und wir können hier eigene Werte im Konstruktor übergeben, die wir evtl. später benötigen. Dann muss man noch OnAuthorization überschreiben und kann hier seine gewünschte Funktionalität einbinden.

image

Mit der Hilfe von filterContext.Result und mit HttpUnauthorizedResult() wird auf die Loginseite verwiesen, kann auch in einem der oberen Links nachgelesen werden.

image

oder mit new RedirectResult(“BeliebigeURL”) kann auch direkt auf eine URL verwiesen werden.image

Das Attribut kann dann in jedem beliebigen Controller eingesetzt werden und wird vor allen anderen Attributen ausgeführt.

image

Advertisements

Ein Gedanke zu „ASP.NET MVC 3 Nutzer Authentication mit Attributen

  1. Pingback: ASP.NET MVC 4 Custom Authorize Attribute | SquadWuschel's Blog

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s