Ich untersuche das Speichern TempData
an einem besseren Ort. Es gibt eine walkthrough for how to do that with MongoDB, aber der Schlüssel für die Speicherung (item.SessionIdentifier == controllerContext.HttpContext.Request.UserHostAddress
, die IP-Adresse) funktioniert eindeutig nicht, da mehrere Benutzer/Sitzungen die gleiche öffentliche IP teilen können.Was ist der Schlüssel in einem benutzerdefinierten TempData-Anbieter?
Die Folge der Verwendung der IP als Schlüssel ist, dass mehrere Benutzer ihre jeweils anderen Daten sehen (und löschen). Insbesondere teilen sich alle Sitzungen und Browser-Instanzen während des Testens auf Ihrer Entwicklungsmaschine dieselben Temp-Daten.
Was wäre ein guter Schlüssel für TempData
Speicher in einer Datenbank zu verwenden?
Mehrere Benutzer auf Objekt zuweisen kann eine IP-Adresse teilen. Zumindest verschiedene Browser auf dem gleichen Computer. – boot4life
TempData ist sitzungsgebunden. Der jeweilige Benutzer sieht nur seine TempData. –
TempData ist an das gebunden, was der Provider an sie bindet. Das MVC-System kann den Provider nicht dazu bringen, etwas Bestimmtes zu tun, und verlässt sich darauf, um die richtigen Daten für den richtigen Benutzer/die richtige Sitzung oder einen anderen Bereich zurückzugeben (in diesem Code die IP, nicht die Sitzung). – boot4life