Was soll ich tun, wenn ich Sitzung zwischen HTTP und HTTPS verwalten möchte. Im öffentlichen Bereich meiner Site sind einige Seiten HTTP und einige sind HTTPS aber ich möchte gemeinsame Sitzung für beide halten ..Was soll ich tun, wenn ich Sitzung zwischen HTTP und HTTPS beibehalten möchte - Asp.Net
Antwort
Es gibt eine Reihe von Sitzungsstatusmodi in ASP.NET können Sie verwenden (die in web.config konfiguriert werden können) abgesehen von der Standardeinstellung "In Proc":
StateServer Modus, der den Sitzungsstatus in einem separaten Prozess namens ASP.NET State Service speichert. Dadurch wird sichergestellt, dass der Sitzungsstatus beibehalten wird, wenn die Webanwendung neu gestartet wird, und der Sitzungsstatus für mehrere Webserver in einer Webfarm verfügbar gemacht wird.
SQLServer Modus speichert Sitzungsstatus in einer SQL Server-Datenbank. Dadurch wird sichergestellt, dass der Sitzungsstatus beibehalten wird, wenn die Webanwendung neu gestartet wird, und der Sitzungsstatus für mehrere Webserver in einer Webfarm verfügbar gemacht wird.
Benutzerdefinierter Modus, mit dem Sie einen benutzerdefinierten Speicheranbieter angeben können.
Siehe ASP.NET Session-State Modes on MSDN. Ich habe dies nicht für HTTPS getestet, aber hoffentlich sollte StateServer oder SQLServer dies erleichtern.
Sobald sich der Benutzer authentifiziert hat, bleibt derselbe Sitzungscookie bis zum Ablauf bestehen, unabhängig davon, ob er auf Seiten mit HTTP oder HTTPS zugreift. Stellen Sie sicher, dass Sie bei Ihrem Sitzungscookie eine Verschlüsselung verwenden, um das Cracken zu erschweren, wenn Sie es über ein unsicheres Protokoll weitergeben. Vielleicht möchten Sie den Wikipedia-Artikel auf session hijacking für weitere Informationen zu sehen.
Eine Sitzung wird pro Anwendung pro Benutzer verwaltet. Wenn Sie also eine Anwendung haben, die einige Seiten über https und einige über http bedient, müssen Sie sich keine Sorgen darüber machen, dass eine neue Sitzung erstellt wird, wenn Sie von https zu http wechseln und umgekehrt.
Wenn Sie das tun, bedeutet das nicht, dass Sie tatsächlich eine Gültigkeit verlieren, die Ihr https hat? – Jasper