Wir haben eine benutzerdefinierte MembershipProvider
in ASP.NET
. Jetzt gibt es 2 mögliche Szenarien, die der Benutzer validieren kann:
Benutzeranmeldung über login.aspx
Seite durch Eingabe seines Benutzernamens / Passworts. Ich habe die Anmeldesteuerung verwendet und sie mit MyMembershipProvider
verknüpft. Das funktioniert einwandfrei.
Ein Authentifizierungstoken wird über eine URL in einer Abfragezeichenfolge einer anderen Website übergeben. Dafür habe ich eine Überladung in MembershipProvider.Validate(string authenticationToken)
, die den Benutzer tatsächlich überprüft. In diesem Fall können wir das Login-Steuerelement nicht verwenden. Nun, wie kann ich das gleiche MembershipProvider
verwenden, um den Benutzer zu validieren, ohne das Login-Steuerelement zu verwenden? Ich habe versucht, Validate
manuell aufzurufen, aber das signiert den Benutzer nicht.
Hier ist das Code-Snippet, das ich verwende
%Vor%Nach erfolgreicher Validierung müssen Sie den Benutzer anmelden, indem Sie FormsAuthentication.Authenticate: Ссылка
BEARBEITEN: Es ist FormsAuthentication.SetAuthCookie: Ссылка
Um den Benutzer auch dorthin zurückzuleiten, wo er hin wollte, rufen Sie Folgendes auf: FormsAuthentication.RedirectFromLoginPage: Ссылка
Sie haben Recht, wenn Sie die Authentifizierungsinformationen direkt als Cookie speichern. Aber die Verwendung einer starken Hash-Funktion (z.B. MD5 + SHA1) ist großartig und sicher. Übrigens, wenn Sie Sitzungen verwenden (die auch nur ein Hash-Cookie sind), können Sie Authentifizierungsinformationen anhängen.
Tags und Links asp.net authentication