2009-10-09 28 views
5

Mögliche Duplizieren:
Is it possible to create a Logon System with ASP.NET MVC but not use the MembershipProvider?ASP.Net MVC Benutzerdefinierte Authentifizierung

Ich suche eine benutzerdefinierte Authentifizierungsmodell für meine MVC-app zu erstellen, aber ich bin nicht sicher, wo zu implementieren meine benutzerdefinierten IPrincipal-und IIdentity-Klassen. Ich möchte dies nicht in der Global.asax bei jeder Anfrage tun, da nicht alle Seiten der Website eine Authentifizierung benötigen. Also meine Frage ist wo? Sollte ich dies in meinen benutzerdefinierten Aktionsfiltern für die Aktionen tun, für die der Benutzer angemeldet sein muss?

Ich möchte nicht den Mitgliedschaftsanbieter oder die Formularauthentifizierung verwenden, die vollständig benutzerdefiniert und getrennt sein muss.

+0

Dies sollte offen gehalten werden. Der aufgelistete doppelte Link deckt die Autorisierung, aber nicht die Authentifizierung ab. –

Antwort

0

Haben Sie darüber nachgedacht, eine separate Basisklasse für Ihre Controller zu erstellen?

können Sie die OnActionExecuting Ereignis außer Kraft setzen zu überprüfen, um zu sehen, ob der Benutzer authentifiziert ist ... so etwas wie:

Public Class AuthenticatedPageController 
    Inherits Controller 

    Protected Overrides Sub OnActionExecuting(ByVal filterContext As ActionExecutingContext) 
    // Code to check user is authenticated - if not chuck them to the log in page... 

    End Sub 


End Class 

Dann werden alle Steuerungen für Seiten, auf denen der Benutzer authentifiziert werden muss, erben von dieser Klasse anstelle der Standard-Controller-Klasse.

+0

Dies ist eine Art von was ich will, aber wenn ich den aktuellen Kontext Benutzerobjekt überprüfen, ich möchte es meine Implementierung des IPrincipal-Objekts und nicht die eine standardmäßig erstellt werden. – Gazeth

Verwandte Themen