Heim >Backend-Entwicklung >C++ >Wie teile ich den Sitzungsstatus zwischen einem .NET 2.0 Web Forms und einer .NET 3.5 MVC2-Anwendung?
Teilen Sie Sitzungen anwendungsübergreifend mit dem ASP.NET Session State Service
Frage:
Wie teile ich eine Sitzung zwischen zwei Webanwendungen, die auf einem Server gehostet werden? Eine Anwendung ist eine .NET 2.0 Web Forms-Anwendung und die andere ist eine .NET 3.5 MVC2-Anwendung.
Antwort:
Um Sitzungen anwendungsübergreifend mithilfe des ASP.NET Session State Service freizugeben, führen Sie die folgenden Schritte aus:
Sitzungsstatus in beiden Anwendungen konfigurieren: Legen Sie den Sitzungsstatusmodus in beiden web.config-Dateien auf „SQLServer“ fest und geben Sie dieselbe Verbindungszeichenfolge und denselben Computerschlüssel an.
Sitzungsstatusdatenbank festlegen: Erstellen Sie eine Datenbank auf einem Server, auf den beide Anwendungen zugreifen können, und führen Sie den Befehl „aspnet_regsql“ aus, um die Sitzungsstatustabelle einzurichten.
Gespeicherte Prozedur ändern: Ändern Sie die gespeicherte Prozedur „TempGetAppID“ in der Sitzungsstatusdatenbank, um den in der Verbindungszeichenfolge angegebenen Anwendungsnamen zu verwenden. Stellen Sie dabei sicher, dass beide Anwendungen denselben Anwendungsnamen angeben.
Gemeinsamer Sitzungsschlüssel: Veröffentlichen Sie in der Web Forms-Anwendung den Sitzungsschlüssel für die MVC-Anwendung. Rufen Sie in der MVC-Anwendung den Sitzungsschlüssel ab und verwenden Sie ihn zum Laden von Sitzungsdaten, indem Sie benutzerdefinierte Logik zum Speichern und Abrufen der Sitzungs-ID implementieren.
Implementierungsbeispiel:
In einer Web Forms-Anwendung:
<code class="language-csharp">protected void LinkButton1_Click(object sender, EventArgs e) { Session["myvariable"] = "dan"; string sessionKey = HttpContext.Current.Session.SessionID; // 后续代码将sessionKey发布到另一个应用程序 }</code>
In einer MVC-Anwendung:
<code class="language-csharp">[HttpPost] public void Recieve(string sessionKey) { var manager = new SessionIDManager(); bool redirected; bool IsAdded; manager.SaveSessionID(HttpContext.ApplicationInstance.Context, sessionKey, out redirected, out IsAdded); var myVar = Session["myvariable"]; }</code>
Bitte beachten Sie, dass SessionIDManager
eine benutzerdefinierte Implementierung erforderlich ist, um das Speichern und Abrufen von Sitzungs-IDs zu verwalten. Dieses Beispiel stellt nur einen grundlegenden Rahmen dar. Die tatsächliche Implementierung erfordert möglicherweise eine komplexere Logik, um die Übertragung und Speicherung von Sitzungsdaten zwischen verschiedenen Anwendungen zu handhaben. Darüber hinaus muss auch die Sicherheit sorgfältig geprüft werden, um sicherzustellen, dass die Übertragung von Sitzungsschlüsseln sicher ist.
Das obige ist der detaillierte Inhalt vonWie teile ich den Sitzungsstatus zwischen einem .NET 2.0 Web Forms und einer .NET 3.5 MVC2-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!