2016-04-11 18 views
1

cflogout scheint die CFID- und CFTOKEN-Werte nicht zu löschen. Wird cflogout nur mit cflogin verwendet?Wie können Sie sich am besten mit ColdFusion abmelden?

In diesem Fall verwende ich nicht cflogin. Ich setze Sitzungsvariablen wegen der Probleme mit cflogin. Es funktionierte vor CF11 Update 7, aber CF11U7 schien das doppelte Problem zu beheben. Irgendjemand anderes?

Ist das alles, was ich brauche? Wenn ja, funktioniert es nicht.

<cfset structDelete(session, "CFTOKEN")> 
<cfset structDelete(session, "CFID")> 

Was ist der beste Weg, um sich mit ColdFusion abzumelden?

+0

Ich fühle mich wie cflogin/cflogout ist nicht besonders gut dokumentiert, aber ich bin mir ziemlich sicher wird nur auf einer früheren arbeiten. Zusätzliche Sitzungsvariablen müssen manuell deaktiviert werden. Um sicherzustellen, dass Ihnen nichts fehlt, verwenden Sie ' #StructKeyList (Session) #', um andere Sitzungsschlüssel anzuzeigen, die möglicherweise in Ihrer App festgelegt sind. – WillardSolutions

+0

'cflogout' verwendet nur' cflogin'. Wie identifizieren Sie derzeit, dass sie eingeloggt sind? Löschen Sie einfach das Token, das Sie verwenden, um zu sagen, dass sie eingeloggt sind. Sie könnten einfach die ganze Sitzung "structClear (Sitzung)" löschen, aber das ist ein bisschen wie ein Vorschlaghammer-Ansatz. –

+0

Was bedeutet, dass ein Benutzer angemeldet ist? Gibt es eine Benutzer-ID in der Sitzung? –

Antwort

2
<cfscript> 
    StructClear(Session) 
</cfscript> 

Dadurch werden alle Session-Variablen löschen.

(1)

<cfscript> 
    StructDelete(Session.MySessionVariable) 
</cfscript> 

(2)

<cfscript> 
    StructDelete(Session, "MySessionStructure") 
</cfscript> 

Wird eine bestimmte Variable löschen (1) oder Struktur (2) in der Sitzungsbereich.

2
<cfset StructDelete(SESSION,"user")> 

Hier Benutzer ist die Struktur, die ich bei der Anmeldung gemacht

+0

Dies. Obwohl ich mit 'structClear (SESSION) 'gehen könnte - weiß jemand den Unterschied? – TRose

+0

@TRose Mit dem ersten löschen Sie den Schlüssel mit dem Namen "Benutzer" aus der Struktur "Sitzung" - mit dem zweiten Sie löschen die gesamte Sitzung. Die zweite ist sicherer, da keine Daten herumliegen.Abhängig von der Art, wie Sie mit Logins umgehen, haben Sie möglicherweise nicht einmal eine "USER" -Schlüssel. –

1
<cfset sessionInvalidate()> 

dieser Funktion wird der Sitzungsbereich nicht nur löschen, sondern auch die CFID/CFToken ungültig machen.

Verwandte Themen