Welcome, Guest
Username: Password: Remember me
Hier wird Deutsch gesprochen
  • Page:
  • 1

TOPIC:

SingleSignOn 18 Jan 2022 19:45 #21152

  • Frank Müßner


  • Posts: 248
  • Hallo, in die Runde :-)

    Ich sitze gerade an einer SingleSignOn Schnittstelle, oder die Verwendung. Ich versuche einen Webshop anzusprechen, der mir nach erfolgreicher Anmeldung eine SSO Antwort gibt, damit ich das Frontend aufrufen kann. Als Response bekomme ich einen HTML Code einer Website. Wie kann ich diese Seite aufrufen? Als Datei speichern und lokal mit dem Browser aufrufen klappt nicht. Die Beschreibung zu der Funktion ist nur:

    Description:
    Redirects the client to the actual xxx frontend. This call returns a cookie that temporary grants
    access to the xxx and redirects the client correspondingly.

    Example Response:
    Redirect to xxx frontend with HTTP status 303 See Other

    Weitere Beschreibung:
    Der Response des SSO Calls mündet direkt in der jeweiligen Homepage

    Leider weiß ich nicht was ich mit dem HTML Code machen muss. Lokal in einem Browser öffnen, klappt nicht. Geht das überhaupt von einer Desktop X# Applikation?

    Für jeden Tipp würde ich mich freuen.
    VG Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 18 Jan 2022 20:32 #21153

    • ic2


  • Posts: 1351
  • Hallo Frank,

    Ich denke dass diese SSO-Antwort ausgeben werden soll, mit z.B. GetDocumentByURL. Dadurch wird die vollständige HTML-Antwort (als String) zurückgegeben und kann in ein Webbrowser-Steuerelement oder in ein Internetbrowser weitergeleitet werden. Die "redirect page"/"Umleitungsseite" wird dann anzeigt.

    Durch die Ausgabe der richtigen URL sollte das Zugriffs-Cookie auf dem System gesetzt worden sein, was bedeutet, dass das Anzeigen der "Umleitungsseite" den erforderlichen Zugriff gewährt.

    Siehe auch für etwas mehr Code meinen Beitrag auf www.xsharp.eu/forum/italian/2570-tradurr...te-short-texts#18904

    Dick

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 06:00 #21155

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    ich verstehe nicht ganz, was Du mit einer Desktop-Applikation machen möchtest.
    Möchtest Du den Webshop innerhalb Deiner Applikation anzeigen?
    Dann kannst Du das Edge Control verwenden.
    Oder hat der Webshop ein API, das Du nach den SSO-Anmeldung nutzen kannst? Dann solltest Du in der Doku nachschauen oder beim Hersteller nachfragen, was in so einem Fall gemacht werden soll.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 09:28 #21159

    • Frank Müßner


  • Posts: 248
  • Hallo Dick,
    ich bekomme von der SSO Funktion einen String (gekürzt):
    <!DOCTYPE html>
    <html dir="ltr" lang="en" class="no-js">
    <head>
    ......
    <meta name="tp-csrfkey" content="_csrf">
    <meta name="tp-csrfheader" content="X-CSRF-TOKEN">
    <meta name="tp-csrftoken" content="cd80a3b4-e154-4e81-9ea4-bd9a36860b6b">
    .......
    ......
    </html>

    Wenn ich versuche den in einem Webbrowser-Steuerelement anzuzeigen mit:
    webBrowser1.Navigate("about:blank");
    if (webBrowser1.Document != null)
    {
         webBrowser1.Document.Write(string.Empty);
    }
    webBrowser1.DocumentText = htmldocumentstring;

    wird mir zwar nach einigen Skript Fehlern eine Seite angezeigt, die aber kein redirekt zu dem Portal hat.


    Hallo Wolfgang,

    die Beschreibung ist wirklich so knapp, wie ich kopiert habe, einzig ein Abschnitt für die Parameter fehlt.

    Auf Nachfrage kam nur die Antwort:
    Der Response des SSO Calls mündet direkt in der jeweiligen Homepage

    Ich möchte an liebsten im System Browser dann diesen Shop anzeigen lassen, und nicht innerhalb meiner Applikation.

    Versuche nochmal beim Betreiber nachzufragen, ob es nicht irgendwelche Beispiele gibt.

    Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 09:41 #21161

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    die Anmelde-Daten hast Du in Deiner Applikation vorliegen?
    Wenn nein: dann ruf einfach ein ShellExecute mit der Anmelde-URL auf, dann sollte der Rest alleine funktionieren.
    Wenn ja: dann muss Dir der Hersteller ein Beispiel liefern, wie Du die übergeben kannst.
    Ich habe beides mehrmals implementiert.
    In Deinem Beispiel steht eh das Token mit drin, und mit dem solltest Du die Webseite dann aufrufen können.
    Mir ist aber immer noch nicht ganz klar, was Du innerhalb Deiner Applikation machen möchtest.
    Wolfgang
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 10:10 #21162

    • Frank Müßner


  • Posts: 248
  • Hallo Wolfgang,

    ich habe Anmeldedaten für ein RESTful API Interface.
    Diese sind andere als für das eigentliche WebPortal des Anbieters.

    Über das API Interface bekomme ich ein JSON web Token (JWT) nach erfolgreicher Anmeldung. Das klappt.
    Mit diesem Token kann ich über GET /sso den Html String bekommen.
    Damit soll dann das Frontend gestartet werden können. In diesem Frontend werden dann Positionen in einen Warenkorb gespeichert, der anschließend wieder per API Interface und dem Token geladen wird.

    Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 10:17 #21163

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    ok, dann ist das klar.
    Genau so was Ähnliches habe ich auch laufen.
    Allerdings bekomme ich da über das API einen Base64-codierten String zurück, den ich dann per ShellExecute an den System-Browser übergeben kann.
    Du bekommst ein HTML zurück, wenn ich das richtig verstanden habe.
    Ich würde das HTML auf Platte speichern und dann die entsprechende Datei im Systembrowser öffnen lassen, mit ShellExecute und dem HTML-Dateinamen. Vielleicht geht das.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 11:10 #21164

    • Frank Müßner


  • Posts: 248
  • :-( Genau das war mein allererster Versuch.
    Leider wird dann lokal geöffnet, und kein redirect auf eine Website.

    Ich hoffe, ich bekomme noch eine bessere Antwort von den Betreibern. Das wird aber bestimmt dauern.

    Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 11:47 #21165

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    blöde Frage: hast Du Zugriff auf einen Webspace? Dann könntest Du das HTML dorthin laden und dann im Browser öffnen.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 12:04 #21166

    • ic2


  • Posts: 1351
  • Hallo Frank,

    Frank Müßner wrote: Wenn ich versuche den in einem Webbrowser-Steuerelement anzuzeigen mit:

    webBrowser1.Navigate("about:blank");
    if (webBrowser1.Document != null)
    {
         webBrowser1.Document.Write(string.Empty);
    }
    webBrowser1.DocumentText = htmldocumentstring;

    wird mir zwar nach einigen Skript Fehlern eine Seite angezeigt, die aber kein redirekt zu dem Portal hat.


    Verwendet X# immer noch denselben Webbrowser wie VO? Dies ist ein alter IE-Browser, der die Skriptfehler verursacht. Was erklären könnte, dass das HTML funktioniert.; ich kann nicht sagen ob es funktionieren sollte da ich nur ein Teil sehe.

    Ich habe einen Browser geschrieben in C#, der auf dem Edge Webbrowser2 basiert. Dies zeigt HTML korrekt und ohne Fehler an.

    Dick

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 12:30 #21169

    • Frank Müßner


  • Posts: 248
  • Hi Wolfgang,

    eigenen Webspace für diese Schnittstelle - ist zu aufwendig.

    Der webBrowser1 ist der System.Windows.Forms.WebBrowser

    Bekomme aber mit Firefox oder Chrome, wenn ich die Html öffne, auch kein Redirekt.

    Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 12:42 #21170

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    kannst Du mal den HTML-Quelltext hier zeigen oder gezippter hochladen? Das Token ggf. zuerst unkenntlich machen.
    System.Windows.Forms.WebBrowser ist das ActiveX vom Internet Explorer, das mit sehr vielen Seiten Probleme hat, siehe Skriptfehler.
    Zudem wird der immer im IE 8 Modus betrieben, und um den in den IE 11 Modus zu schalten, braucht es einen Eintrag im Registry unter "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION".
    Mit einer halbwegs aktuellen Windows-Version ist es aber möglich, den Edge einzubinden, bzw. sogar den Chrome-basierten Edge.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 13:09 #21171

    • Frank Müßner


  • Posts: 248
  • Ich habe dir ein PM gesendet,
    weiß nicht was da alles drin steht.
    Danke für deine Hilfe, wollte da gar nicht so viel Umstände machen.
    Grüße Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 14:14 #21182

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    ich denke, ich habe jetzt verstanden.
    Der HTML-Code, den Dir die Webseite zurückgibt, enthält jede Menge relative Links, also ist der nicht dazu gedacht, verarbeitet zu werden.
    Du solltest Deine Abfrage, die Du jetzt im X#-Programm machst, und die Dir dieses HTML zurückgibt, auf keinen Fall in Deinem Programm machen, sondern den System-Browser übergeben, bzw. einem in Dein Programm integrierten Webbrowser.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 14:26 #21184

    • Frank Müßner


  • Posts: 248
  • Hallo Wolfgang,
    danke für deine Bestätigung, hab auch schon gedacht das es für eine Desktop-App so einfach nicht geht.

    Ich warte noch auf eine Antwort vom Support, wie die es sich vorstellen, vielleicht gibt es eine Lösung. Ansonsten ist es einfach zu viel Aufwand.

    Grüße Frank

    Please Log in or Create an account to join the conversation.

    SingleSignOn 19 Jan 2022 14:28 #21185

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3047
  • Hallo Frank,
    das geht für eine Desktop-App schon, Du musst halt ein Browser-Fenster integieren, und das darf nicht der IE in einer Uralt-Version sein.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1
    Moderators: wriedmann