Laden...

[ASP.NET] MembershipProvider <-> Session?

Erstellt von Steav vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.641 Views
S
Steav Themenstarter:in
142 Beiträge seit 2007
vor 12 Jahren
[ASP.NET] MembershipProvider <-> Session?

Hallo allerseits,

hoffe die Frage ist nicht ganz unberechtigt, aber ich hab ein Verständnis-Problem mit meinem Custom Membership-Provider.

Und zwar:
Ich speichere Sachen in meinem Custom MembershipUser + meiner Session.

Jetzt ist es aber so, dass der Login des MembershipProviders länger gespeichert wird als meine Sessiondaten.

D.h. es kann die Situation auftreten, dass Session => Abgelaufen / Gelöscht (in der Entwicklungsphase merke ich das nach einem Clean Solution), aber der Login des Membership-Providers besteht scheinbar noch.

Im GetUser(...) null zurückzugeben als MembershipUser hilft auch nicht.

Da stellt sich doch die Frage wo die Daten gespeichert werden und was ich hier noch nicht verstanden habe?

mfg
Steav

S
Steav Themenstarter:in
142 Beiträge seit 2007
vor 12 Jahren

Gerade das aspxauth -Cookie gefunden.... das passiert alles durch Cookies?

Ist das nicht bedenklich? Habe gerade das Passwort des Users mit dem ich eingeloggt in der Datenbank geändert und der Membership-Provider hat mich weiterhin als angemeldeten Benutzer angezeigt, obwohl ich im GetUser null zurückgebe, da keine Authinfos hinterlegt sind.

16.807 Beiträge seit 2008
vor 12 Jahren

Cookies sind ganz normal.Sind auch in der Regel gut gesalzen und daher eigentlich nicht für jemand anders nutzbar. Wenn der Browser kein Cookie annimmt, dann steht die Session in der URL.

Wenn Du das Passwort änderst, heißt es noch lange nicht, dass die Session zerstört wird. Ist meist auch gar nicht gewollt.
Wenn von administrativer Ebene wirklich ausgeloggt werden sollte, muss das auch aktiv passieren.

// Zu schnell abgeschickt..
Ausloggen passiert mit

Session.Abandon();
FormsAuthentication.SignOut();
S
Steav Themenstarter:in
142 Beiträge seit 2007
vor 12 Jahren

Wenn Du das Passwort änderst, heißt es noch lange nicht, dass die Session zerstört wird. Ist meist auch gar nicht gewollt.
Wenn von administrativer Ebene wirklich ausgeloggt werden sollte, muss das auch aktiv passieren.

// Zu schnell abgeschickt..
Ausloggen passiert mit

Session.Abandon();  
FormsAuthentication.SignOut();  

Das mache ich, danke. Mich einfach auf das Vorhandensein eines Cookies zu verlassen ist mir zu unsicher, da jeder das Faken kann. Deshalb wird mit Beenden der Session das Cookie gelöscht und das Passwort welches ausschließlich in der Session gespeichert wird mit überprüft.

16.807 Beiträge seit 2008
vor 12 Jahren

Tut mir leid, aber in einer Session hat ein Passwort absolut nichts verloren. Absolut überhaupt nicht. Wenn ich wüsste, dass eine Seite mein Passwort im Cookie speichert, würde ich aber massiv dagegen vorgehen. Das ist alles andere als Datenschutzfreundlich.

Innen Cookie gehört wenn überhaupt ein Hash, anhand dem Du eine Identifikation durchführen kannst ( und nebenbei dafür sorgen kannst, dass nur eine einzige Session eines Users gültig ist ). Und verschlüsselt gehört das ganze Ding ebenso.

Die beiden Funktionen sollten aber ein aktives Logout durchführen.
Wenn Du dann noch den Zugriff gewährst stimmt was anderes nicht.

S
Steav Themenstarter:in
142 Beiträge seit 2007
vor 12 Jahren

Tut mir leid, aber in einer Session hat ein Passwort absolut nichts verloren. Absolut überhaupt nicht. Wenn ich wüsste, dass eine Seite mein Passwort im Cookie speichert, würde ich aber massiv dagegen vorgehen. Das ist alles andere als Datenschutzfreundlich.

Innen Cookie gehört wenn überhaupt ein Hash, anhand dem Du eine Identifikation durchführen kannst ( und nebenbei dafür sorgen kannst, dass nur eine einzige Session eines Users gültig ist ). Und verschlüsselt gehört das ganze Ding ebenso.

Die beiden Funktionen sollten aber ein aktives Logout durchführen.
Wenn Du dann noch den Zugriff gewährst stimmt was anderes nicht.

Genau das war ja meine Rede (falls ich Deinen Satz richtig entschlüsselt habe an den Stellen wo Du Cookie + Session verdrehst).

Ich möchte eine die Daten eben 'nicht' im Cookie speichern, so wie der Membership-Provider von ASP das scheinbar macht und speichere es deshalb in der Session - und lösche die ASP-Cookies in der Global.asax beim Beenden der Session.

Verschlüsselt sind die Passwörter von vornherein als salted MD5's.