Framework-übergreifende Sitzungsfreigabe in .NET-Anwendungen aktivieren
Problem:
Zwei Webanwendungen, eine auf .NET 2.0 und die andere auf .NET 3.5 (MVC2), die auf demselben Server bereitgestellt werden, erfordern einen gemeinsamen Sitzungsstatus. Trotz identischer StateServer
-Modus- und Verbindungszeichenfolgenkonfigurationen kann die MVC2-Anwendung keine von der .NET 2.0-Anwendung initiierten Sitzungen abrufen.
Auflösung:
Die direkte Sitzungsfreigabe zwischen .NET-Anwendungen, die unterschiedliche Frameworks verwenden, wird nicht grundsätzlich unterstützt. Eine zentralisierte Sitzungsverwaltungslösung oder ein datenbankgestützter Sitzungsspeicher ist erforderlich.
Umsetzung:
Verwenden Sie einen Anbieter für gemeinsame Sitzungen, auf den beide Anwendungen zugreifen können. Der integrierte SQL Server-Sitzungsanbieter ist eine geeignete Wahl. Konfigurieren Sie die web.config
-Dateien beider Anwendungen wie folgt:
sessionState
Konfiguration:<code class="language-xml"><sessionState mode="SQLServer" sqlConnectionString="..." /></code>
machineKey
Konfiguration:<code class="language-xml"><machineKey decryption="AES" validation="SHA1" validationKey="..." /></code>
Entscheidend ist, dass beide Anwendungen eine Verbindung zur gleichen SQL Server-Datenbank herstellen. Darüber hinaus muss die gespeicherte Prozedur TempGetAppID
möglicherweise geändert werden, wie in der entsprechenden MSDN-Dokumentation beschrieben (ein Link zur Dokumentation wäre hier hilfreich, falls verfügbar).
Durch die Verwendung eines konsistenten machineKey
und eines gemeinsamen Sitzungsanbieters können beide Anwendungen erfolgreich Sitzungsschlüssel teilen und Authentifizierungscookies bilden, was eine nahtlose Sitzungsverwaltung über verschiedene .NET Framework-Versionen hinweg ermöglicht.
Das obige ist der detaillierte Inhalt vonWie können zwei .NET-Anwendungen mit unterschiedlichen Frameworks den Sitzungsstatus teilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!