Cookie-Einführung
Zunächst geben wir eine kurze Einführung in Cookies und erklären, wie Sie ASP zur Verwaltung von Cookies verwenden.
Ein Cookie ist eine kleine Datei, die auf dem Computer des Kunden gespeichert wird. Dies bedeutet, dass Sie jedes Mal, wenn ein Benutzer Ihre Website besucht, heimlich eine Datei mit relevanten Informationen auf seiner Festplatte ablegen können. Diese Datei kann fast alle Informationen enthalten, die Sie einrichten möchten, einschließlich Benutzerinformationen, Site-Status und mehr. In diesem Fall besteht die potenzielle Gefahr, dass die Informationen von Hackern gelesen werden können. Um zu verhindern, dass dieses Problem auftritt, besteht eine wirksame Möglichkeit darin, dass auf das Cookie nur die Domäne zugreifen kann, die es erstellt hat. Das bedeutet: Beispielsweise kann ytu.edu.cn nur auf Cookies zugreifen, die von ytu.edu.cn erstellt wurden. Im Allgemeinen ist dies kein Problem; aber was ist, wenn Sie in Cookies gespeicherte Benutzerinformationen mit zwei verschiedenen Websites auf zwei verschiedenen Domänen teilen müssen? Natürlich können Sie die Benutzerinformationen kopieren, aber wenn nötig, ist dies nur möglich Registrieren Sie sich auf einer Site und werden Sie ein registrierter Benutzer einer anderen Site. Oder was ist, wenn die beiden Sites eine Benutzerdatenbank gemeinsam nutzen und Benutzer sich automatisch anmelden müssen? Derzeit ist die gemeinsame Nutzung von Cookies über Domänen hinweg die beste Lösung.
Schauen wir uns hier zunächst einige ASP-Cookie-Verarbeitungscodes an, damit wir in Zukunft leichter darauf zurückgreifen können.
„Cookie erstellen.“
Response.Cookies(MyCookie).Expires=Datum+365
Response.Cookies(MyCookle).Domain=mydomaln.com
Response.Cookies(MyCookle)(Benutzername)=strBenutzername
Response.Cookies(MyCookle)(Password)=strPassword
Das Lesen und Schreiben von Cookies ist sehr einfach. Der obige Code erstellt ein Cookie und legt Eigenschaften für das Cookie fest: Domäne, Ablaufzeit und andere im Cookie gespeicherte Werte. Hier sind strUsename und strPassword zuvor irgendwo festgelegte Variablen. Lesen Sie dann das Cookie mithilfe der folgenden Anweisung ein.
„Lesen Sie Cookie.“
datExpDate=Request.Cookies(MyCookie)
strDomaln=Request.Cookies(MyCookle).Domain
strUsername=Request.Cookies(MyCookle)(Benutzername)
strPassword=Request.Cookies(MyCookie)(Passwort)
Nähere Informationen entnehmen Sie bitte den ASP-Informationen.
erreichen
Der Trick beim einfachen Teilen von Cookies ist die Umleitung. Der allgemeine Vorgang ist:
1. Ein Benutzer klickt auf siteA.com.
2. Wenn der Benutzer kein Cookie für siteA.com hat, leiten Sie den Benutzer zu siteB.com weiter.
3. Wenn der Benutzer ein Cookie für siteB.com hat, leiten Sie den Benutzer zusammen mit einem speziellen Flag (unten erläutert) zurück zu siteA.com. Andernfalls leiten Sie den Benutzer einfach zu siteA.com weiter.
4. Erstellen Sie ein Cookie auf siteA.com.
Es scheint einfach, aber analysieren Sie es sorgfältig: siteA.com und siteB.com teilen die gleichen Benutzereinstellungen. Wenn der Benutzer also ein Cookie für siteB.com hat (bereits registriert), kann siteA.com das Cookie auch lesen und Cookie-Berechtigungen erteilen Eigenschaften. Auf diese Weise wird es für Benutzer, die siteA.com besuchen, so aussehen, als hätten sie siteB.com besucht.
Diese Prüfung sollte in einer in siteA.com enthaltenen Datei „cookies.inc“ implementiert werden. Schauen wir uns diesen Code an:
l-1
„SiteA.com prüft Cookies
Wenn Request.Querystring(Checked)<>True, dann
Wenn nicht, dann Request.Cookies(SiteA_Cookie).Haskeys
'Weiterleitung zu siteB.com
Response.Redlrect(http://www.siteB.com/cookie.asp)
Beenden Sie, wenn
Beenden Sie, wenn
Wenn der Benutzer ein Cookie für siteA.com hat, muss nichts unternommen werden; die erste if-Anweisung wird verwendet, um die Endlosschleife zu beseitigen. Werfen wir einen Blick auf die Datei cookie.asp auf siteB.com, um weitere Informationen zu erhalten.
1-2
'SiteB.com
„Überprüfen Sie die Cookies.“
Wenn nicht, dann Request.Cookies(SlteB_Cookle).Haskeys
'Weiterleitung zu siteA.com
Response.Redirect(http://www.siteA.com/index.asp&?checked=True)
Anders
'Benutzernamen abrufen
strUsername=Request.Cookies(SiteB_Cookie)(Benutzername)
'Führen Sie den Benutzer mit einem speziellen Flag zu siteA.com zurück
Response.Redlrect(http://www.siteA.com/index.asp&?checked=True&identrfer=&strUsername)
Beenden Sie, wenn
Wenn der Benutzer immer noch kein Cookie auf siteB.com hat, senden Sie ihn zurück an siteA.com und teilen Sie der Anwendung mit, dass Sie das Cookie überprüft haben, indem Sie in der Abfrage einen Parameter namens „checkd“ angeben. Andernfalls senden Sie den Benutzer zurück zu siteB.com und verlassen Sie die Schleife.