Frage

Ich denke ernsthaft darüber nach, mich von CF8 Cflogin zu entfernen, da er an den Server gebunden ist, der die Anmeldung hervorgebracht hat. In einer ausbalancierten Ladungsumgebung sind Sie mit klebrigen Sitzungen festgefahren, wenn Sie keine benutzerdefinierte Implementierung durchführen.

Hat jemand eine Quelle, die Cflogin nachahmt, die an den Client -Umfang geschrieben und verwaltet wird? Vielleicht sogar ein Design, das gut zu einer Umbenennamen für Isuserin [jede] Rolle passt.

Woran sollte ich nachdenken, wenn ich in Betracht ziehen, eine Ersatzimplementierung für CFlogin zu schreiben?

War es hilfreich?

Lösung

Hier ist ein grundlegender Nichts cflogin Ansatz mit Variablen, die im Client -Bereich gespeichert sind. Wir verwenden einen ähnlichen Ansatz für nicht übertriebene Sitzungen in unserem Server-Cluster hinter unserem Lastausgleich.

Dieser Code sollte in leben Application.cfc -> onRequestStart() Methode:

<!--- handle login *post* --->
<cfif structKeyExists(FORM, "pageaction") and FORM.pageAction eq "adminlogin">

<!--- attempt to log user in --->

    <cfif loginSuccessful>

        <!--- Set client variables for session management --->
        <cfset CLIENT.lastHit = now() />
        <cfset CLIENT.loggedIn = 1 />

        <!--- redirect to home page --->

    <cfelse>

        <!--- redirect to login page with message --->

    </cfif>

<!--- all other requests, except for the login page --->
<cfelseif structKeyExists(CLIENT, "lasthit") and structKeyExists(COOKIE, "cfid") and structKeyExists(CLIENT, "cfid") and listLast(CGI.SCRIPT_NAME, "/") neq "login.cfm">    

    <!--- Check for timeout --->
    <cfif (datediff("n", CLIENT.lastHit, now()) lte 10) and (CLIENT.loggedIn is 1) and (CLIENT.cfid is COOKIE.cfid)>

        <!--- record last hit --->
        <cfset CLIENT.lastHit = now() />

    <cfelse>

        <!--- timeout! redirect to login page --->
        <cflocation URL="http://mydomain/login.cfm" addtoken="false" /> 

    </cfif> 

</cfif>

Es gibt Benutzerrolle, aber ich hoffe, dies hilft als Ausgangspunkt.

Andere Tipps

Ich habe den CF -Login -Assistenten über Dreamweaver so angepasst, dass er tragbar ist und eine DB -Tabelle zur Authentifizierung und zum Rollenmanagement verwendet hat. Aus diesem Grund kann ich es entweder als Einzelbenutzer-Login oder mehrere Kontoanmeldungen verwenden. Ich habe Cflogin nie benutzt und muss nicht. Ich lasse die Dateien einfach in das Verzeichnis fallen, passe die Anmeldeinformationen an, und das ist es. Funktioniert jedes Mal perfekt.

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