Logo Oracle Deutschland   Application Express Community
APEX-Anwendung ohne erneuten Login wechseln
Erscheinungsmonat APEX-Version Datenbankversion
Februar 2012 ab 3.x ab 9.2

Wechselt man von einer APEX-Anwendung zu einer anderen, so muss man sich neu einloggen - das ist normal. Mitunter aber möchte man die Anwendung zwar wechseln, für den Endanwender soll es aber so aussehen, als ob er sich immer noch in der gleichen Anwendung befindet: Das bedeutet, dass kein neues Login-Fenster auftauchen darf. In diesem Tipp lesen Sie, wie das geht - und soviel vorab: Es ist sehr einfach!

Wenn Sie sich durch die APEX-Entwicklungsumgebung bewegen, und aufmerksam auf die URLs in der Adressleiste Ihres Browsers achten, fällt Ihnen auf, dass die APEX-Entwicklungsumgebung sich genau so verhält. Nach der Anmeldung am APEX-Workspace befinden Sie sich auf der Homepage, das ist Anwendung 4500. Wenn Sie in den Application Builder navigieren, befinden Sie sich in Anwendung 4000 - nach einem Wechsel zum Administrationsbereich sind Sie in der Anwendung 4350. Offensichtlich wechselt man in der APEX-Entwicklungsumgebung ständig die Anwendung - und Sie müssen sich nicht immer wieder neu anmelden.

Die gute Nachricht dabei ist: Die APEX-Entwicklungsumgebung ist eine APEX-Anwendung; die gleichen Möglichkeiten stehen Ihnen also auch für Ihre eigenen Anwendungen zur Verfügung. Und um das auszuprobieren, legen Sie sich am besten gleich zwei APEX-Anwendungen in Ihrem Workspace an. Naheliegenderweise sollten beide Anwendungen das gleiche Login-Verfahren verwenden. Zur Verdeutlichung des Anwendungswechsels mit Bildschirmfotos haben wir unterschiedliche Themes verwendet - in der Praxis würde man wahrscheinlich gerade das gleiche Theme nutzen, um den Anwendungswechsel vor dem Endanwender zu verbergen.

Anwendung 1

Abbildung 1: "Anwendung 1"

Anwendung 2

Abbildung 2: "Anwendung 2"

Wenn Sie nun Anwendung 1 starten, müssen Sie sich anmelden. Ein Wechsel zu Anwendung 2 bringt Sie wiederum auf die Loginseite - das ist das normale Verhalten.

Navigieren Sie nun im Application Builder zur Anwendung 1 und dort zu den Gemeinsamen Komponenten. Gehen Sie dann zu den Authentifizierungsschemas. Dort sollten Sie dann einen Eintrag sehen und zwar den für das von Ihnen gewählte Authentifizierungsschema.

Authentifizierungsschemas einer Anwendung

Abbildung 3: Authentifizierungsschemas einer Anwendung

Klicken Sie auf den kleinen Bleistift, um das Authentifizierungsschema zu bearbeiten. Scrollen Sie dann ein wenig herunter, bis Sie den Bereich Sessioncookieattribute sehen (Abbildung 4).

Authentifizierungsschema bearbeiten: Session-Cookie-Attribute

Abbildung 4: Authentifizierungsschema bearbeiten: Session-Cookie-Attribute

Tragen Sie dann einen Namen Ihrer Wahl für das Session-Cookie ein. Speichern Sie das Authentifizierungsschema danach ab. Nun verwendet APEX anstelle des systemgenerierten Namens den von Ihnen festgelegten für das Session-Cookie. Am Verhalten der Anwendung ändert sich damit erstmal nichts.

Nun kommt der Trick: Machen Sie das gleiche mit der Anwendung 2. Verwenden Sie dabei den gleichen Namen für das Session-Cookie. Das Ergebnis ist, dass beide Applikationen nun das gleiche Session-Cookie verwenden. Und das bedeutet schließlich, dass nur beim ersten Mal, wenn das Session-Cookie noch nicht gesetzt ist, ein Login erforderlich ist. Beim Wechsel zur zweiten Anwendung ist das Cookie vorhanden und es ist kein Login mehr nötig.

Das ganze funktioniert natürlich auch mit mehr als zwei Anwendungen. Die einzige Voraussetzung ist, dass sich beide Anwendungen im gleichen Workspace befinden. Wenn Sie einheitliches Login über mehrere Anwendungen in verschiedenen Workspaces umsetzen möchten, ist etwas mehr zu tun - der schon vor einiger Zeit erschienenen Tipp Integriertes Login für mehrere Anwendungen: mit APEX-Bordmitteln beschreibt die nötigen Schritte genauer.

Zurück zur Community-Seite