Ich bin neugierig, wenn es eine Möglichkeit gibt, dynamisch die Session-ID aus dem Kontext eines SessionStateStoreProvider (oder ein anderes anpassbares Modul) in C# für ASP.NET zu ändern.
Ich bin eine benutzerdefinierte SessionStateStoreProvider implementieren, und ich war über die Erweiterung der Session-ID denken, um den Store-Provider zu sagen, wo Sie für eine Sitzung suchen gehen. Ich habe einen benutzerdefinierten SessionIDManager implementiert, mit dem ich neu erstellte Sitzungs-IDs mit dem erforderlichen Tag ergänzen kann. Das Problem ist, dass sich der gewünschte Wert dieses Tags während der Dauer einer Sitzung ändern kann. So kann die Sitzung beispielsweise von einem Speicherort gelesen werden, muss aber möglicherweise an einen anderen Speicherort geschrieben werden. In diesem Fall wäre die ID ursprünglich für Speicherort A gekennzeichnet worden, aber beim Schreiben würde die Filiale an Speicherort B schreiben wollen. Die Kennzeichnung sollte beim nächsten Lesen der Sitzung auf Speicherort B aktualisiert werden.
Also, aus dem Kontext der SessionStateProviderBase Überschreibung...
public override void SetAndReleaseItemExclusive(HttpContext context,
string id, SessionStateStoreData item, object lockId, bool newItem)
... ist es möglich, die Sitzungs-ID zu ändern? Ich weiß, dass die Eigenschaft HttpContext.Session.SessionID nicht einstellbar ist. Gibt es eine andere Möglichkeit, eine Aktualisierung auf diese Weise zu melden? Oder gibt es eine geeignetere Methode, um einen solchen Zustand über mehrere Aufrufe hinweg zu übertragen?
Ich bin neu in C# und Web-Entwicklung im Allgemeinen, so dass jede Anregung geschätzt werden würde.