Frage

Wir haben eine umfangreiche klassische ASP-Website, und wir suchen nach ASP .Net (höchstwahrscheinlich die neueste Version) zu aktualisieren. Offensichtlich alle Seiten bei der Aktualisierung einmal Leviathan Aufgabe sein würde, so dass wir nur neue Seiten (und Seite Neufassungen) in ASP .Net zunächst zu schreiben suchen.

Es gibt zwei Hindernisse zu tun so:

  1. Ich habe keine Ahnung, wie die klassischen ASP Session-Daten in ASP .NET zuzugreifen. Dies hätte nur einmal eingerichtet werden, da es von keiner anderen Seite als die Login-Seite geändert wird. Ich würde es vorziehen, minimale Änderungen an der klassischen ASP-Login-Seite zu haben, zu machen, aber das ist nur eine kleine Präferenz.

  2. Die ASP und ASP.NET-Sitzungen zu Timeout zur gleichen Zeit haben würden, um die Version Unterschied nahtlos zu halten.

Könnte jemand bieten jede Hilfe, bitte?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wir standen vor der gleichen Aufgabe (nicht Spaß). Da Asp.Net Sitzung und Asp-Sitzung nicht mit anderen geteilt werden können, haben wir eine Kombination von Methoden verwendet, die jeweils die Situation angemessen.

  • In einigen Fällen haben wir Cookies statt Sitzung.
  • In anderen Ländern haben wir automatisch Entsendung Formen, so dass, wenn ein Sitzungsinformationen des Benutzers in einer klassischen ASP-Seite gesetzt wurde, nachdem die Sitzung Info gesetzt wurde, wir zu einer Asp.Net Seite umgeleitet, die in Query-String-Parameter gelesen und verwendet diejenigen, die die gleichen Session-Variablen für Asp.Net zu setzen. Dann, wenn die Asp.Net Seite die gleichen Variablen gesetzt ist, hat die Seite eine Umleitung auf das, was Seite der ursprünglichen Anmeldeseite zuvor deutete auf. Das gleiche funktioniert in umgekehrter Richtung.

Also, im zweiten Szenario wird ein Beispiel Fluss hat von würde geändert:

  

Benutzer versucht, einen Teil geschützt zugreifen   Content-Seite -> umgeleitet Login   Seite -> Protokolle in -> Sitzung Infos Set   basierend auf Login Erfolg -> umgeleitet   zurück zum Inhalt Seite.

  

Benutzer versucht, einen Teil geschützt zugreifen   Content-Seite -> umgeleitet Login   Seite -> Protokolle in -> Sitzung Infos Set   basierend auf Login Erfolg -> umgeleitet   auf eine .net-Seite vorbei, entlang Login   Anmeldeinformationen, etc. -> aspx Seiten-Sets   Session info und dann sofort   Umleitungen zum Inhalt Seite zurück.

Wir wussten, dass es war ein Hack, aber es funktioniert in der kurzfristigen, bis wir die Websites alle konvertierten bekommen konnte.

Andere Tipps

Es könnte ein besserer Weg, dies zu tun, neuere mit IIS-Einstellungen (muss zugeben, ich habe bisher nicht auf dem, was IIS7 neue Goodies gehalten tun kann). Aber Sie könnten einen XMLRequest von Ihrer ASP-Login-Seite zu einer ASP.Net Seite tun. Sie könnten entweder durch die Einstellungen übergeben Sie in den Post-Daten benötigen oder die .net-Seite der Sitzungsdaten selbst füllen, wenn die Logik ist einfach genug. Die .net Seite würde dann kehren Sie eine .net Session-ID im Cookie, müssen Sie dies in der ASP-Benutzer Cookie Sammlung setzen, so dass der Benutzer sowohl hat eine .net und Classic ASP Session-Cookie.

Das würde es tun.

I umgesetzt dies vor ein paar Jahren von einer Datenbank mit.

hat Microsoft einen ziemlich guten Artikel darauf, obwohl es eine wenig alt an diesem Punkt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top