Wenn ich mehrere CF8-Server habe, kann sich ein Benutzer auf einem Server anmelden, aber die Anmeldedaten auf allen Servern teilen (keine erneute Anmeldung erforderlich)?Anmeldedaten zwischen ColdFusion-Servern teilen?
Antwort
Vielleicht ist Frage zum Teilen der Sitzung? Dies kann unter Verwendung der Seriennummer J2EE sessions oder unter Verwendung der gemeinsamen client variables erfolgen.
Zum Beispiel kann dies auf folgende Weise getan werden.
Erstellen Sie eine leere Datenbank auf einem der Server (ich habe MySQL erstellt). Erstellen Sie auf allen CF-Servern Datenquellen, die auf diese Datenbank verweisen. Verwenden Sie diese Datenquelle als Servereinstellungen> Clientvariablen> Clientsitzungsspeicher mit dem Namen SharedSessions (wir werden es später verwenden).
Wenn wir cflogin in Application.cfm auf allen Servern verwenden sind, ist es Code, um diese (vereinfacht) so aussehen kann:
<cfapplication
name="shared_session_test"
sessionManagement="true"
clientmanagement="true"
clientstorage="SharedSessions" />
<cflogin>
<cfif IsDefined("cflogin") and cflogin.name eq "admin" and cflogin.password eq "admin">
<cfset user_roles = "administrators" />
<cfset user_name = cflogin.name />
<cfset user_password = cflogin.password />
</cfif>
<cfif IsDefined("user_roles")>
<!--- push login params into shared client scope --->
<cfset CLIENT.user_roles = user_roles />
<cfset CLIENT.user_name = user_name />
<cfset CLIENT.user_password = user_password />
<cfelseif IsDefined("CLIENT.user_roles")>
<!--- restore login params from shared client scope --->
<cfset user_roles = CLIENT.user_roles />
<cfset user_name = CLIENT.user_name />
<cfset user_password = CLIENT.user_password />
</cfif>
<cfif IsDefined("user_roles")>
<cfloginuser name="#user_name#" password="#user_password#" roles="#user_roles#">
<cfelse>
<!--- authentication failed - send back 401 --->
<cfsetting enablecfoutputonly="yes" showdebugoutput="no">
<cfheader statuscode="401">
<cfheader name="WWW-Authenticate" value="Basic realm=""MySecurity""">
<cfoutput>Not authorized</cfoutput>
<cfabort />
</cfif>
</cflogin>
<cfoutput><p><a href="http://other.server.com/index.cfm?#CLIENT.urltoken#">other.server.com</a></p></cfoutput>
Und dies gleich zeigen auf beiden Servern:
<cfdump var="#getAuthUser()#">
<cfdump var="#CLIENT#">
Sicher, es gibt viel zu tun, um den Prozess besser und sicherer zu machen, nur die allgemeine Idee beschrieben.
Hoffe, das hilft.
Das war ein ausgezeichnetes und sehr sauberes Schreiben. +1 – rip747
Diese Lösung funktioniert nur, wenn beide CF-Instanzen unter dem gleichen Server oder gruppiert sind, oder? – Henry
@Henry Ich habe diese Lösung für verschiedene Server verwendet. Mehr noch, einer von ihnen war auf Linux-Box, andere auf Win3k. Shared DSN war auf Win One, also muss noch ein anderer (so schnell wie möglich) darauf zugreifen, sagen wir, dass wir im selben Datacenter sein werden. Havent versuchte zusammengedrängt, sorry. – Sergii
- 1. Anmeldedaten über URL senden
- 2. netTcpBinding ohne Windows-Anmeldedaten?
- 3. Ressourcen zwischen map teilen/reduce
- 4. Teilen eines Objekts zwischen Aktivitäten
- 5. MVVM: Daten zwischen ViewModels teilen
- 6. PYQT - Signale zwischen QThread teilen
- 7. Den Kontext zwischen Ansichtsmodellen teilen
- 8. Teilen Sie Daten zwischen Microservices
- 9. Daten zwischen HTML-Seiten teilen
- 10. Android teilen Standortdaten zwischen Aktivitäten
- 11. Frühling Sicherheitskonfiguration zwischen Anwendungen teilen
- 12. XPObject-Objekt zwischen Threads teilen
- 13. Datenbanktabelle zwischen zwei Djangoprojekten teilen
- 14. Standard-Anmeldedaten für Virtuoso Conductor
- 15. PayPal sanbox API-Anmeldedaten fehlen?
- 16. Teilen einer Ergebniswarteschlange zwischen mehreren Prozessen
- 17. Daten zwischen Softirq und Prozesskontext teilen
- 18. Variablen zwischen Web-Arbeitern teilen? [globale Variablen?]
- 19. Good Practice Ressourcen zwischen Modulen teilen?
- 20. Daten teilen zwischen zwei iphone apps
- 21. DTO-Objekte zwischen WCF-Diensten teilen
- 22. Teilen von ASP.NET MVC-Teilansichten zwischen Projekten
- 23. Umbraco 7 @Funktionen zwischen Vorlagen teilen
- 24. Teilen einer Zeichenfolge zwischen zwei wiederkehrenden Zeichen
- 25. Teilen Ansichten zwischen 2 devise Modelle
- 26. MVVM teilen Objekt zwischen allen Ansichten
- 27. Teilen C# Klasse Quellcode zwischen mehreren Projekten
- 28. Kann ich Paint-Instanzen zwischen Ansichten teilen?
- 29. iOS Today Extension - Teilen Kerndaten zwischen
- 30. teilen Variable zwischen Klassen und Methoden
Können Sie weitere Details hinzufügen - haben Sie irgendeine Form von Cluster-Setup oder sind das völlig separate Anwendungen? –