Frage

Ich denke, in fast allen Fällen die Präferenz der Benutzer Daten können gespeichert werden in ein cookie mit (fast) gleich gute Ergebnisse, wenn der Benutzer-Profil-API verwendet wird.Nachteile der Verwendung von cookies zu (für angemeldete Benutzer) zu sein scheinen, dass ein cookie, der gelöscht werden kann oder ein time-out, in dem Fall ist die Präferenz der Benutzer Daten werden verloren gehen.Für anonyme Benutzer, wenn die Einstellungen Daten zu persisted across sessions dann ein cookie wird benutzt werden, selbst wenn Benutzer-Profile verwendet werden.

Also, was sind einige der größten Vorteile/Nachteile bei der Benutzung entweder Benutzerprofile oder cookies für das speichern von Benutzer-Präferenzen?

War es hilfreich?

Lösung

Ein weiterer Nachteil ist, die alle Präferenz von Daten in cookies ist, dass alle diese Daten müssen gesendet werden in jeder Anforderung vom client und keine Antwort vom server, wenn eine änderung an den Daten gemacht wird.Während dies mag wie ein kleiner Punkt im Zeitalter der Breitband-es ist immer noch ein zusätzlicher Aufwand.Mit der Profil-API heißt, dass die Daten auf dem server und nur eine Sitzung Identifizierungs-cookie Bedürfnisse zu werden gesendet durch browser.

Auch, wie Sie erklärte, für anonyme Benutzer wenn die cookies gelöscht werden, dann den Benutzer-Einstellungen statt in den Profilen DB wird nicht mehr zugänglich sein.Dies ist allerdings nicht der Fall sein, mit der registrierten Benutzer Ihrer website.Wenn Sie entfernen Ihre cookies wird der server noch in der Lage, zum abrufen Ihrer Vorlieben der Benutzer das nächste mal anmelden.

Andere Tipps

Einer der Vorteile der Registrierung auf der Webseite ist, dass es merkt sich meine Einstellungen - wenn Sie speichern Informationen in einem cookie auf meinem Computer anstatt auf Ihrem server wenn ich dann auf anmelden Ihrer Website von einem anderen computer aus, ich habe alle meine Einstellungen wieder - aus usability-Sicht ist dies ziemlich schlecht.

Für einen anonymen Benutzer, die Speicherung der Einstellungen in einem cookie können scheinen ziemlich vernünftig - Sie wissen nicht, wer Sie sind, oder ob Sie comeback, und als Sie Stand, Sie kann aber nicht von einer Sitzung zur nächsten, wer Sie sind - aber Sie würden wahrscheinlich besser dran speichern eine Art von token in den cookie-und mapping auf ein Einstellungen auf dem server speichern.

Auch habe ich bemerkt verschiedene Browser haben unterschiedliche Implementierungen für cookies - z.B. IE können jetzt erhalten 50 cookies aus einer Domäne (aus den ursprünglichen 20), aber es ist immer noch begrenzt auf insgesamt höchstens 4096 bytes für den gesamten cookie-Sammlung (und früheren) - andere Browser werden unterstützt 4KB pro-Plätzchen, nicht pro domain.

Cookies eingeschränkt in maximale Länge und Sie sind mit einer Implementierung, die jenseits Ihrer Kontrolle (nach alle, Sie sind eine Funktion Ihrer Besucher zu browser).Persönlich mag ich nicht unter Berufung auf unbekannte Drittanbieter-Implementierungen habe ich keine Kontrolle über, und wenn ich mich versuche ich zu verwenden Sie es auf einfachste Weise möglich.

So, von wo ich komme aus, ich würde immer Speicherung der Benutzerdaten auf dem server und geben Sie nur um einem cookie-Hinweis auf, dass Informationen.

Neben der nicht das Vertrauen in den browser mit einem potenziell großen Menge Daten (die möglicherweise verloren gehen, falsch gespeichert oder nicht gespeichert werden überhaupt je, nicht nur den browser, sondern auch, sagen wir, einige antivirus-Anwendung oder was auch immer), das hat verschiedene andere Vorteile:

  • Sie verstecken Ihre Umsetzung aus der Benutzer:Wenn Sie speichern die Daten in dem cookie wird es sichtbar für alle und analysiert werden können oder geändert werden.Dies kann sogar dazu führen, dass Benutzer sich verändernden cookies, um die es mögen und damit Sie zwingen, in halten die Dinge durch, die Sie wahrscheinlich wollen, um loszuwerden, nur weil einige Benutzer je nach Ihren besonderen Einsatz zu jeder Zeit.
  • Als cookies werden im Klartext gespeichert, auf freigegebene Maschinen, jeder kann nicht mehr so leicht finden Sie alle Einstellungen der vorherigen Benutzer gemacht, noch ändern Sie diese nach Belieben.

Aber der wichtigste Punkt bleibt das trennen von nicht-ganz-arbeiten, browser-Implementierungen (nur die Lagerung von kleinen Token ist die gemeinsame, getestet use-case)

Vergessen Sie nicht, dass einer der größten Nachteile bei der Verwendung cookies ist, dass Sie kopiert werden können, so dass Ihr gefährlich zu speichern authentication info auf Sie.

Ich bin nicht vertraut mit dem Benutzer-Profil-API, aber ich vermute, es speichert die Informationen, die auf dem server(?).Wenn das der Fall ist, dann könnten Sie ein problem haben, wenn Sie zu viele Benutzer.

Insgesamt vielleicht die beste Lösung ist zu verwenden Sie Benutzer-Profil, wenn es garantiert, dass die Persistenz der Informationen.

Halten Sie im Verstand, es ist möglich, zu schreiben ProfileProvider, dass weiterhin Benutzerdaten in einem cookie, so können Sie haben das beste aus beiden Welten, wenn Sie ermitteln den Zustand, die Sie wollen zu bestehen ist geeignet für cookies (Größe, Sicherheit, etc).

Tatsächlich, Sie brauchen nicht zu bestehen Präferenz von Daten in cookies, die für anonyme Benutzer bei der Verwendung der ASP.NET Profil-Provider.Einfach zu speichern Sie die aktuelle Benutzer-id (welche einige schrecklich aussehende session-Verwandte string) in einem cookie.Dies wird die bisherige UserID bei späteren besuchen, und dann können Sie nehmen Sie einfach die alte Profil-Informationen und die Migration auf die aktuellen Profil, oder sogar authentifizieren Sie wie die alten anonymen Profil.

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