Vor einigen Tagen enthielt eine Unternehmenswebsite das Servicesystem eines Kunden. Da es sich bei der Website um einen gemieteten Bereich handelte, reichte es nicht aus, das System des Kunden zu speichern. Daher haben wir einen anderen Server eingerichtet, um den Domainnamen (den Domainnamen) zu vereinheitlichen (Der Domänenname war zu unterschiedlich), daher habe ich dieses Kundensystem mithilfe eines Frameworks in die ursprüngliche Website eingebunden, bin dabei jedoch auf einige Probleme gestoßen. Aufgrund domänenübergreifender Vorgänge trat nach der Anmeldung des Kundensystembenutzers das Problem des Sitzungsverlusts auf, was mich einen ganzen Tag lang beunruhigte. Ich habe auch hier gepostet, um nach Lösungen zu fragen. net/dispbbs.asp ?boardID=10&ID=167628&page=3. Nachdem ich auf vielfältige Weise nach Informationen gesucht habe, habe ich dieses Problem schließlich durch meine eigenen Analysen und Experimente gelöst. Heute sah ich, dass jemand nach einem Programm fragte, also habe ich diesen Beitrag geschrieben, damit jeder ihn teilen kann.
Erklären Sie zunächst das Prinzip:
Das System erkennt den Umfang jedes Programms. Im Allgemeinen verwendet ein IE standardmäßig einen Programmumfang.
Da das Framework über domänenübergreifende Inhalte verfügt, wird zunächst standardmäßig der Programmumfang des Framework-Programms selbst verwendet, sodass der Programmumfang innerhalb des Frameworks nicht bestätigt werden kann.
Um diesen IE standardmäßig auf den Programmbereich innerhalb des Frames festzulegen, habe ich mehrere Sprünge verwendet.
Springen Sie zunächst aus diesem Frame heraus und geben Sie eine rahmenlose Website-Seite ein, die einen Sitzungswert erfordert (nennen Sie es die Seite von Server B), und generieren Sie auf dieser Seite eine Sitzung, damit das System automatisch eine Sitzungs-ID generieren und dann zurückspringen kann Da das System eine Sitzungs-ID für diesen IE generiert hat, geht das System immer davon aus, dass dieser IE im Gültigkeitsbereich dieses Programms liegt kann in dieser ID überleben.
Dadurch wird der Zweck erreicht, das System zu betrügen.
Ich möchte noch etwas hinzufügen: Der zweite Sprung verwendet eine andere Methode. Der Grund dafür ist, dass ich die Informationen außerhalb des Frames verwerfen und die Informationen innerhalb des Frames speichern muss.
Verschiedene Sprungmethoden verwerfen oder speichern die Informationen vor dem Sprung.
Programmdurchführung:
Datei 1:
Framework-Datei: index.htm (läuft auf Server A)
<html>
<Kopf>
<meta HTTP-EQUIV=Content-Type CONTENT=text/html;
<title>Qihao Door Industry</title>
</head>
<frameset rows=1,* border=0 frameborder=0>
<frame name=winBackLoad scrolling=no noresize target=mainweb1 src=default_top.htm>
<frame name=mainweb1 src=http://www.serverB.com/index.asp scrolling=auto>
<noframes>
<Körper>
<p>Diese Seite verwendet Frames, Ihr Browser unterstützt diese jedoch nicht. </p>
</body>
</noframes>
</frameset>
</html>
Datei 2: index.asp (läuft auf Server B, Funktionen zum Springen und Generieren einer Sitzungs-ID)
<Skript>
if (top.location !== self.location) {
top.location=self.location;
}
// Der Zweck dieses JS besteht darin, außerhalb des Rahmens zu laufen
</script>
<%
if session(xm2)= then
session(xm2)=eee
„Der Zweck des obigen Satzes besteht lediglich darin, die Sitzung zu verwenden, das System eine Sitzungs-ID für diesen IE generieren zu lassen und festzustellen, ob er übersprungen wurde, um eine Endlosschleife zu vermeiden.“
%>
<META HTTP-EQUIV=REFRESH CONTENT=0;URL='http://www.serverA.com/index.htm'>
<%
Der obige Satz soll zum Frame zurückkehren. Hinweis: Verwenden Sie nur die obige Sprungmethode und nicht die folgende Sprungmethode.
anders
Response.Redirect index2.asp
„Der obige Satz ist der eigentliche Sprung, um das Programm auf Server B auszuführen!“ Hinweis: Sie können nur auf diese Weise springen!
Ende, wenn%>
Nach dem obigen Sprung verfügt dieser IE bereits über die Sitzungs-ID auf Server B. Mit anderen Worten: Obwohl der Frame auf dem Hauptframe auf Server A ausgeführt wird, kann er sicherstellen, dass die Sitzung auf Server B nicht verloren geht, wodurch eine domänenübergreifende Umsetzung erreicht wird Zweck.