abmelden dialog user bzw. zurück zu service-user

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

abmelden dialog user bzw. zurück zu service-user

Beitrag von Jens W (ForumUser / 37 / 0 / 0 ) »
kennt jemand einen weg/baustein mit dem man sich vom webas wieder abmelden kann bzw. mit dem man vom dialog nutzer zum service-user zurückehren kann?

Gruß Jens W

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Jens (Specialist / 106 / 0 / 0 ) »
Hallo Namensvetter ;-),

Du kannst an die URL einen Parameter anfügen: sap-sessioncmd=close. Probier mal ob Du damit weiterkommst.
Eine Detailbeschreibung findest Du übrigens hier:

http://help.sap.com/saphelp_webas620sp9 ... ameset.htm

Dann verzweigen in 'Web-Applikationen und Business-Server-Pages', 'Benutzerkonzepte', 'Anmeldung an BSP-Applikationen', 'Abmelden von BSP-Applikationen'.

Gruss, Jens

Beitrag von Jens W (ForumUser / 37 / 0 / 0 ) »
Hallo Jens,
erstmal vielen Dank. Mit sap-sessioncmd=close kann ich zwar die Session beenden, aber im System ist noch immer sy-uname des Dialog Nutzers in Verwendung.

Nochmal mein Szenario/Problem:
- Anmeldung(SUSR_INTERNET_USERSWITCH ServiceNutzer->DialogNutzer;SSCOOKIE wird gesetzt)
- ...Applikation wird verwendet...
- Abmeldung(Cookie wird gelöscht), Benutzer wird weitergeleitet auf den Anmelde Bildschirm(sy-uname soll wieder ServiceNutzer werden ODER Anmeldung als neuer DialogNutzer, also ein Wechsel von Dialog1 auf Dialog1 z.B.).

Gruß JensW

P.S.: 6.10er

Beitrag von Steff (Site Admin / 386 / 0 / 1 ) »
Hallo Zusammen,

@Jens: Das funktioniert so nicht. Die Session wird damit nicht endgültig geschlossen.

@JensW: Damit ein sauberes Abmelden funktioniert, musst Du um Deine Applikation einen Wrapper legen. Dafür eignet sich die Seite 'sesssion_single_frame.htm', die Du in der WebApplikation 'SYSTEM' der Basis findest. Diese Seite kopierst Du in Deine BSP-Applikation. Dann folgst Du den Anweisungen in den Kommentaren dieser Seite. Ach ja, Seite am besten umbenennen, z.B. 'Default.htm'. Diese Seite muss dann künftig der 'entry point' Deiner Applikation sein.
Dann packst Du in jede Deiner Seiten z.B. einen Button (logoff-button).
Der sollte wie folgt aussehen:

Code: Alles auswählen.

<input type = "button"
                          value         = "LogOff"
                          onClick       = "parent.exitBSPApplication( 'default.htm');"/>

Wenn der User dann auf LogOff geht, wird die Session sauber geschlossen und Du kommst auf den Anmeldebildschirm. siehe dazu im übrigen auch den Hinweis 517860 und das daran beigefügte attachment. Da ist alles genauestens beschrieben.
Übrigens ein switch von Dialog-User auf Service-User funktioniert nicht, das kannst Du vergessen!

Gruß,
Steff

Beitrag von Jens W (ForumUser / 37 / 0 / 0 ) »
kann jemand mal den relevanten Teil von 'sesssion_single_frame.htm' posten? Geht das überhaupt auf einem 6.10er??? btw: die seite gibt es erst unter 6.20.


Gruß Jens W

Beitrag von Gast ( / / 0 / 3 ) »
Bitteschön, hoffentlich hilft's:

Code: Alles auswählen.

<%@page language="abap" %>

<% " Copy this page into your BSP application, and change line below.
   " This page should always used be as entry point into application.

   DATA: target_page TYPE STRING VALUE 'default.htm'.

   " This coding below can be safely deleted. Only used for inline testing.
   DATA: appName TYPE STRING.
   CONCATENATE runtime->application_namespace '/' runtime->application_name INTO appName.
   TRANSLATE appName TO LOWER CASE.
   IF appName = 'sap/system'.
     runtime->keep_context = 1. " go stateful to test system management in line
   ENDIF.
   " Up the here can be safely deleted, only test code

   " Comment: In ie, when the browser is closed, the new popup window is
   " still executed, before complete shutdown. This allows us to still close
   " the session in the backend. With NN, when the browser is closed, it
   " is gone for ever. So no session cleanup. This is feature/bug of one
   " browser or the other browser.
%>

<html>

<script language="JavaScript">

function Loader(name)
{
    doc=window.frames[name].document;
    doc.writeln('<html><body onLoad="JavaScript:document.f.submit();">');
    doc.writeln('<form id="f" name="f" target="SAP_BASIS_A" method="POST" action="<%=target_page%>">');
    <%  DATA: ffs TYPE tihttpnvp, ff  TYPE  ihttpnvp.
        request->get_form_fields( changing fields = ffs ).
        DELETE ffs WHERE name cs '~'.
        LOOP AT ffs INTO ff.
    %>
          doc.writeln('<input type="hidden" name="<%=ff-name%>" value="<%=ff-value%>">');
    <%  ENDLOOP. %>
    doc.writeln('<table border="0" width="100%" height="100%"><tr><td align="CENTER" valign="MIDDLE"><span style="font-family:Arial,sans-serif;"><otr>Loading...</otr></span></td></tr></table>');
    doc.writeln('</form></body></html>');
    doc.close();
    <% if runtime->session_manager->is_enabled is not initial. %>
    var liBehindFirstDot = location.hostname.indexOf( "." ) + 1;
    if ( liBehindFirstDot > 0) document.domain = location.hostname.substr( liBehindFirstDot );
    <% endif. %>
}

function exitBSPApplication(newTargetUrl)
{
 <% if runtime->session_manager->is_running = 0. %>
  <% CLASS cl_bsp_login_application DEFINITION LOAD. %>
  var url  = "<%=CL_BSP_LOGIN_APPLICATION=>GET_SESSIONEXIT_URL( page = page )%>";
  var prop = 'height=100,width=400,top='+(screen.height-100)/2+',left='+(screen.width-400)/2;
  var out = window.open(url,'_blank',prop);
 <% endif. %>
  document.getElementById("SAP_BASIS_FRAMESET").onunload = null;

  if(newTargetUrl) window.setTimeout('{document.location.href="'+newTargetUrl+'";}', 750);
}

function frameLoaded(name)
{
}

</script>

<frameset id="SAP_BASIS_FRAMESET" rows="*,0" onUnLoad="exitBSPApplication();" resize="no" framespacing="0" frameborder="0">
    <frame name="SAP_BASIS_A" src="JavaScript:parent.Loader('SAP_BASIS_A');" onLoad="JavaScript:frameLoaded('SAP_BASIS_A');" >
    <noframes>This browser does not support frames.</noframes>
</frameset>

</html>

Beitrag von Jens W (ForumUser / 37 / 0 / 0 ) »
okay. funktioniert unter 6.10er nicht :(

Ist imho auch super umständlich. kann ich irgenwie von einem dialog-nutzer in einen anderen wechseln? (das dialog->service nicht funktioniert hab ich schon sehr start vermutet) gibt es also sowas wie einen dialog<->dialog userswitch?

funktioniert sowas wie zu stateful switchen und sich dann abmelden und dann wieder zu stateless zurück kehren?

HAT SICH ERLEDIGT!!!

Witzig! Eine Kombination aus
CALL FUNCTION 'HTTP_DELETE_SSO2_COOKIE'
EXPORTING
server = runtime->server.
...und...
navigation->exit( exit_url = 'index.htm' ).
Löste mein Problem. Wenn mir jemand erklären kann warum, dann wär ich ihm wirklich dankbar!

Gruß Jens W
P.S.: Und viiiiiiiiieeeeeeeeeeelen Dank für die schnellen und qualitativ hochwertigen Antworten. Mensch vielleicht wird das hier das erste richtig gute ABAP-Forum!

Seite 1 von 1

Vergleichbare Themen

3
Antw.
23120
Views
Bestimmten User abmelden
von weeze » 15.02.2007 15:58 • Verfasst in ABAP® Core
0
Antw.
1767
Views
Abmelden mal wieder....Probleme mit Javascript
von t0mt0m » 15.03.2007 14:49 • Verfasst in Web-Dynpro, BSP + BHTML
3
Antw.
443
Views
Anmelden / Abmelden von der standalone UI5-Anwendung
von Sebastian Schröter » 29.11.2022 11:29 • Verfasst in Fiori, UI5, JavaScript
6
Antw.
5674
Views
User-Exit beim Abmelden aus dem SAP-System
von Matthias_L. » 18.01.2008 10:13 • Verfasst in Basis
1
Antw.
1918
Views
Reaktion auf /N im Dialog?
von Hellbender » 24.01.2007 10:37 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 168