2012-08-23 10 views
7

Ich habe über die MembershipProvider Klasse lernen, und ich dachte, dass die Membership.ValidateUser() Methode sollte verwendet werden, um in einem Benutzer zu protokollieren.Was ist der Zweck von Membership.ValidateUser ist()

Allerdings habe ich gerade gelernt, dass es eine FormsAuthentication.Authenticate() gibt.

Was ist der Zweck von ValidateUser() innerhalb Membership?

Antwort

10

Kurz gesagt, es gibt Zeiten, in denen Sie einfach validieren möchten, dass ein Benutzer ist, wer sie sagen, dass sie sind, ohne ein Authentifizierungs-Cookie für längere Zeit bestehen zu müssen.

+0

Also sollte ich die MembershipProvider.ValidateUser() verwenden, innerhalb einer Überschreibung von FormsAuthentication.Authenticate()? – Luke

+0

@Coulton, die 'Authenticate()' Methode wird im Wesentlichen dasselbe in diesem Kontext tun, so dass es nicht notwendig ist, zu überschreiben. Mit der 'ValidateUser()' - Methode können Sie theoretisch Ihren Provider auswählen, wenn Sie mehrere haben. Die 'Authenticate()' Methode verwendet nur die in Ihrer web.config konfigurierte Methode. –

+1

Ich habe gerade [hier] bemerkt (http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.authenticate.aspx), dass es besagt, dass Authenticate() veraltet ist und 'The recommended Alternativ können Sie die Membership-APIs wie Membership.ValidateUser verwenden. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?linkid=252463 (möglicherweise in englischer Sprache). Also sollte ich Membership.ValidateUser() verwenden und meine Formularauthentifizierung innerhalb dieser Methode durchführen – Luke

1

Sie überprüfen nur Ihre Datenquelle (Datenbank), wenn der übergebene Benutzername und das Kennwort in der Datenbank vorhanden sind und übereinstimmen und true Check MSDN zurückgibt. Wenn sie nicht übereinstimmen, es gibt false zurück

public static bool ValidateUser(string username, string password)