Wiederholte Cookie-Abfrage oder Speichern im Ansichtszustand? Welches ist die bessere Praxis?

Ich habe eine interne Website, bei der sich Benutzer anmelden. Diese Daten werden als Cookie gespeichert. Von dort aus gehen die Nutzer auf ihren fröhlichen Weg. Immer wieder werden die Anwendungen den Authentifizierungsdatensatz abfragen, um zu bestimmen, über welche Berechtigungen der Benutzer verfügt.

Meine Frage lautet: Ist es effizienter, das Cookie nur nach den Benutzerdaten abzufragen, wenn es benötigt wird, oder die Benutzerinformationen im Viewstate zu speichern?

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

Antwort auf "Wiederholte Cookie-Abfrage oder Speichern im Ansichtszustand? Welches ist die bessere Praxis? " 4 von antworten

Persönlich ziehe ich es vor, ein session to store things, although the other developers here seem to think that's a no-no. zu verwenden, um Dinge zu speichern, obwohl die anderen Entwickler hier zu denken scheinen, dass das ein Nein ist.

Es gibt eine Einschränkung: Sie können die IP des Benutzers in der Sitzung speichern und mit der aktuellen IP des Benutzers vergleichen, um Sitzungsentführungen zu vermeiden. Möglicherweise hat jemand anderes hier eine bessere Idee, wie man Sitzungsentführungen verhindern kann.

Sie können Sitzungsdaten verwenden - so wissen Sie, dass Benutzer, sobald Sie sie dort gespeichert haben, nicht damit herumtäuschen können, indem sie die Abfragezeichenfolge ändern.

Viewstate ist spezifisch für die Seite, die sie sehen, so dass es weg ist, sobald sie ihren fröhlichen Weg gehen. Keine gute Möglichkeit, Daten beizubehalten.

Am besten ist es, die Formularauthentifizierung zu verwenden, die in ASP.NET integriert ist, und Sie können auch alle benutzerspezifischen Informationen in den Wert des Formularauthentifizierungstickets schieben. Sie können dort 4000 Bytes (nach der Verschlüsselung) erhalten, die halten sollten, was Sie brauchen. Es wird auch darauf achten, Benutzern den Zugriff auf Seiten auf der Website zu ermöglichen und zu verweigern, und Sie können festlegen, dass sie abläuft, wann immer Sie es benötigen.

Speichern in der Sitzung ist ein no-no weil es SEHR schlecht skaliert (ersättigt Ressourcen auf dem Server), und es kann für Benutzer mit mehreren Browserverbindungen mit demselben Server ärgerlich sein. Es ist manchmal unvermeidbar, aber Sie sollten große Mühe nummiert, um es zu vermeiden, wenn Sie können.

Würde ich die Cookie-Methode verwenden. Die Sitzung ist in Ordnung, wird aber von asp.net neu kompiliert, und Sie müssen ein Nicht-Sitzungscookie verwenden, wenn Sie es nach der Sitzung trotzdem beibehalten möchten. Auch wenn Sie jemals einen Stateserver verwenden, macht er im Wesentlichen dasselbe (speichert Sitzung im db). Sitzung ist wie eine schnelle und schmutzige Lösung, echte Männer verwenden Cookies.