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

BusinessServerPages; Erstellung von Webapplikationen.

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

Postby Jolie2216 » Tue Apr 22, 2003 5:09 pm

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
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Jolin2218 » Wed Apr 23, 2003 12:44 pm

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
Jolin2218
...
...
 
Posts: 105
Joined: Mon Dec 02, 2002 2:28 pm

Postby Jolie2216 » Fri Apr 25, 2003 2:01 pm

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
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Walter4536 » Fri Apr 25, 2003 2:19 pm

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <input type = "button"
  2.                           value         = "LogOff"
  3.                           onClick       = "parent.exitBSPApplication&#40; 'default.htm'&#41;;"/>
  4.  
  5.  
GeSHi ©


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
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Jolie2216 » Fri Apr 25, 2003 2:31 pm

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
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Alva1590 » Fri Apr 25, 2003 2:36 pm

Bitteschön, hoffentlich hilft's:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <%@page language="abap" %>
  2.  
  3. <% " Copy this page into your BSP application, and change line below.
  4.    " This page should always used be as entry point into application.
  5.  
  6.    DATA: target_page TYPE STRING VALUE 'default.htm'.
  7.  
  8.    " This coding below can be safely deleted. Only used for inline testing.
  9.    DATA: appName TYPE STRING.
  10.    CONCATENATE runtime->application_namespace '/' runtime->application_name INTO appName.
  11.    TRANSLATE appName TO LOWER CASE.
  12.    IF appName = 'sap/system'.
  13.      runtime->keep_context = 1. " go stateful to test system management in line
  14.    ENDIF.
  15.    " Up the here can be safely deleted, only test code
  16.  
  17.    " Comment: In ie, when the browser is closed, the new popup window is
  18.    " still executed, before complete shutdown. This allows us to still close
  19.    " the session in the backend. With NN, when the browser is closed, it
  20.    " is gone for ever. So no session cleanup. This is feature/bug of one
  21.    " browser or the other browser.
  22. %>
  23.  
  24. <html>
  25.  
  26. <script language="JavaScript">
  27.  
  28. function Loader&#40;name&#41;
  29. &#123;
  30.     doc=window.frames[name].document;
  31.     doc.writeln&#40;'<html><body onLoad="JavaScript:document.f.submit&#40;&#41;;">'&#41;;
  32.     doc.writeln&#40;'<form id="f" name="f" target="SAP_BASIS_A" method="POST" action="<%=target_page%>">'&#41;;
  33.     <%  DATA: ffs TYPE tihttpnvp, ff  TYPE  ihttpnvp.
  34.         request->get_form_fields&#40; changing fields = ffs &#41;.
  35.         DELETE ffs WHERE name cs '~'.
  36.         LOOP AT ffs INTO ff.
  37.     %>
  38.           doc.writeln&#40;'<input type="hidden" name="<%=ff-name%>" value="<%=ff-value%>">'&#41;;
  39.     <%  ENDLOOP. %>
  40.     doc.writeln&#40;'<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>'&#41;;
  41.     doc.writeln&#40;'</form></body></html>'&#41;;
  42.     doc.close&#40;&#41;;
  43.     <% if runtime->session_manager->is_enabled is not initial. %>
  44.     var liBehindFirstDot = location.hostname.indexOf&#40; "." &#41; + 1;
  45.     if &#40; liBehindFirstDot > 0&#41; document.domain = location.hostname.substr&#40; liBehindFirstDot &#41;;
  46.     <% endif. %>
  47. &#125;
  48.  
  49. function exitBSPApplication&#40;newTargetUrl&#41;
  50. &#123;
  51.  <% if runtime->session_manager->is_running = 0. %>
  52.   <% CLASS cl_bsp_login_application DEFINITION LOAD. %>
  53.   var url  = "<%=CL_BSP_LOGIN_APPLICATION=>GET_SESSIONEXIT_URL&#40; page = page &#41;%>";
  54.   var prop = 'height=100,width=400,top='+&#40;screen.height-100&#41;/2+',left='+&#40;screen.width-400&#41;/2;
  55.   var out = window.open&#40;url,'_blank',prop&#41;;
  56.  <% endif. %>
  57.   document.getElementById&#40;"SAP_BASIS_FRAMESET"&#41;.onunload = null;
  58.  
  59.   if&#40;newTargetUrl&#41; window.setTimeout&#40;'&#123;document.location.href="'+newTargetUrl+'";&#125;', 750&#41;;
  60. &#125;
  61.  
  62. function frameLoaded&#40;name&#41;
  63. &#123;
  64. &#125;
  65.  
  66. </script>
  67.  
  68. <frameset id="SAP_BASIS_FRAMESET" rows="*,0" onUnLoad="exitBSPApplication&#40;&#41;;" resize="no" framespacing="0" frameborder="0">
  69.     <frame name="SAP_BASIS_A" src="JavaScript:parent.Loader&#40;'SAP_BASIS_A'&#41;;" onLoad="JavaScript:frameLoaded&#40;'SAP_BASIS_A'&#41;;" >
  70.     <noframes>This browser does not support frames.</noframes>
  71. </frameset>
  72.  
  73. </html>
  74.  
GeSHi ©
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Jolie2216 » Fri Apr 25, 2003 2:57 pm

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!
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 6 guests