2010-03-24 3 views
6

Ich entschuldige mich, wenn dies eine "Duh" -Frage ist. Es scheint, als ob die Antwort leicht googlefähig sein sollte, aber ich habe es noch nicht gefunden.Wie kann ich clientabhängige Variablen in Coldfusion aussetzen?

Ich arbeite an einer großen Coldfusion-Anwendung, die eine große Menge von Sitzung/Benutzerdaten im Bereich Client speichert (dh < cfset Client.UserName = "JoshuaC" >). Ich habe diese Anwendung nicht geschrieben, und ich habe nicht den Luxus, sie erheblich zu überarbeiten.

Mir wurde die Aufgabe gestellt, die Clientvariablen nach 72 Stunden auf Timeout zu setzen. Ich bin mir nicht ganz sicher, wie ich das machen soll. Wenn ich die Anwendung geschrieben hätte, hätte ich die Variablen im Session-Bereich gespeichert und dann das Attribut sessiontimeout des Tags CFAPPLICATION geändert. Wie auch immer, ich bin mir nicht sicher, ob dieses Zeitlimit Auswirkungen auf die Client-Variablen hat oder wie hoch ihre Persistenz ist. So wie die Anwendung jetzt funktioniert, werden die Client-Variablen niemals zeitlimitiert. Wenn Sie nur die Cookies des Benutzers löschen oder eine Abmeldeseite besuchen, auf der alle Client-Bereichsvariablen auf "" gesetzt sind, werden die Werte gelöscht.

Natürlich könnte ich eine Art Zeitstempelvariable wie Client.LastAccessDateTime erstellen und etwas in die Application.cfm schreiben, um die Clientvariablen zu löschen, wenn diese datetime mehr als 72 Stunden vor Now() liegt. Aber es muss einen besseren Weg geben, oder?

Antwort

4

Je nachdem, ob Ihr werden eine Datenquelle oder die Registrierung als Client Shop verwenden Sie die „Purge-Daten für Clients zu setzen haben, die 3 Tage 90 Tage unvisited bleiben (= 72 Stunden) auf dem

Coldfusion Administrator = > Client-Variablen => Registry

oder

Client-Variablen =>NameOfDatabase Seite.

Wenn Client-Variablen als Cookies gespeichert werden, dann sind Sie ha ve, den Ablaufzeitraum anzupassen, wenn das Cookie gesetzt wird.

Das Bereinigungsintervall auf der Seite Clientvariablen steuert nur, wie oft ColdFusion eine Bereinigungsoperation in Ihren Clientspeichern ausführt (= nach abgelaufenen Clientvariablen sucht, um sie zu löschen).

2

Ich nehme an, Sie suchen nach Purge Interval Einstellung, die im CF-Administrator auf der Seite Servereinstellungen> Clientvariablen konfiguriert ist. Das Standardintervall ist 1 Stunde 7 Minuten.

EDIT: Dieser Einstellungswert ist nicht genau das, was Sie brauchen. Es tut mir leid, sehen Sie meinen Kommentar zum Reinigen - denke, dass es genauer ist.

+0

@Sergii - Das ist interessant ... das könnte das sein, wonach ich suche. Aber wenn ich das Intervall auf 72 Stunden und eine Variable auf die 71. Stunde einstelle, wird es dann 1 Stunde später gelöscht? Oder ist das Reinigungsintervall "seit dem letzten Zugriff"? –

+0

Siehe Andreas Antwort, erster Absatz. Wenn Sie die Datenbank oder Registrierung zum Speichern von Clientvariablen verwenden, können Sie eine eigene Bereinigungseinstellung einrichten ("Bereinigen von Daten für Clients, die 3 Tage nicht besucht wurden" - für 72 Stunden rechts). Dies bedeutet "Aktivieren Sie diese Option Wenn Sie möchten, dass ColdFusion in regelmäßigen Abständen Clientdaten löscht, auf die in der angegebenen Anzahl von Tagen nicht zugegriffen wurde. " Denke, das beantwortet deine Frage. Entschuldigung, ich kann nicht 100% sicher sagen, weil nicht der Client-Bereich statt der Sitzung verwendet wird. – Sergii