Wiederholte Cookie-Abfrage oder Speicherung in Ansichtszustand? Welches ist die bessere Praxis?

StackOverflow https://stackoverflow.com/questions/167873

  •  03-07-2019
  •  | 
  •  

Frage

Ich habe eine interne Website, die Benutzer sich anmelden. Diese Daten werden als Cookie gespeichert. Von dort gehen die Nutzer auf ihre fröhliche Art und Weise. Jeder so oft die Anwendung (en) wird die Authentifizierungs Datensatz abfragen, um zu bestimmen, welche Berechtigungen der Benutzer hat.

Meine Frage ist: Ist es mehr efficent abfragen nur das Cookie für die Benutzerdaten, wenn es benötigt wird, oder die Benutzerinformationen in Ansichtszustand zu retten?

[Bearbeiten] Wie weiter unten erwähnt, Session ist auch eine Option.

War es hilfreich?

Lösung

Viewstate ist spezifisch auf die Seite, die sie sehen, so ist es weg, wenn sie entlang thier fröhlich Weg gehen. Nicht eine gute Möglichkeit, Daten zu beharren.

Ihre beste Wette ist die Formularauthentifizierung zu verwenden, sein in zu ASP.NET gebaut und Sie können auch alle benutzerspezifischen Informationen in die Formularauthentifizierung Ticket Hochwertiges schieben. Sie können 4000 Bytes (nach Verschlüsselung) erhalten gibt, die halten sollte, was Sie brauchen. Es wird auch darauf achten, zuzulassen und zu leugnen, die Nutzer auf Seiten auf der Website zugreifen, und Sie können es ablaufen, wenn Sie benötigen.

in der Sitzung zu speichern ist ein no-no , weil es skaliert sehr schlecht (frisst Ressourcen auf dem Server), und es kann auf den Benutzer mit mehreren Browsern-Verbindungen zu demselben Server ärgerlich sein. Es ist manchmal nicht zu vermeiden, aber man sollte sich große Mühe, um es zu vermeiden, wenn Sie können.

Andere Tipps

Ich persönlich lieber mit einem Sitzung Dinge zu speichern, obwohl hier die anderen Entwickler ein nein nein, das ist zu denken scheinen.

Es gibt eine Einschränkung: Sie möchten die Benutzer-IP in der Sitzung speichern und vergleichen Sie es mit der aktuellen IP des Benutzers zu helfen, Session-Hijacking zu verhindern. Möglicherweise jemand anderes hier hat eine bessere Idee, wie Session-Hijacking zu verhindern.

Sie können die Sitzungsdaten verwenden -. Auf diese Weise wissen Sie, dass, sobald Sie es dort gespeichert haben, können die Benutzer nicht mit ihm spaßen durch den Query-String zu ändern

Ich würde die Cookie-Methode verwenden. Session ist in Ordnung, aber wird von asp.net auf recompile angeordnet sind, und Sie haben eine nicht Session-Cookie verwenden, wenn Sie es nach Sitzung trotzdem bestehen bleiben soll. Auch wenn Sie schon einmal eine State verwenden seine im Wesentlichen die gleiche Sache (speichert Sitzung in der db). Session ist wie ein quick and dirty fix, echte Männer verwenden Cookies.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top