Nach einem Login andere Seite aufrufen, aber Cookie behalten?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Unknown.

    Nach einem Login andere Seite aufrufen, aber Cookie behalten?

    Hi,
    kurz und knapp:
    Ist es möglich eine im selben Ordner befindende .html Datei nach dem
    Login aufzurufen, aber vor dem anzeigen der eigentlichen Seite, ohne
    das Cookie zu löschen?
    MfG
    Mit den gegebenen Informationen schon.

    Cookies werden im HTTP-Header übergeben.
    Bei diesem handelt es sich um eine Konkatenation
    von Zeilen, die als Delimiter einen Wagenrücklauf
    gefolgt von einem Zeilenvorschub verwenden.
    Die Zeile, welche die Cookies enthält, beginnt
    mit der Zeichenkette "Cookies:". Diese muss also
    im Response-Header ausfindig gemacht und
    anschließend im Request-Header übermittelt werden.
    Öhm, OK, das übersteigt ein wenig meinen Horizont, dennoch danke für deine Antwort.
    Ich entschuldige mich für die wenigen Informationen.
    Ich schiebe jetzt ein paar nach, die hoffentlich zur Lösung beitragen:
    Ich möchte das mit dem Einloggen auf dem IServ unserer Schule machen, hier ein Beispiel-IServ, da ich den meiner Schule nicht unbedingt verbreiten möchte: demo-iserv.de/idesk/
    Den Login habe ich so gelöst:

    VB.NET-Quellcode

    1. If WebBrowser1.DocumentTitle = "IServ demo-iserv.de" Then
    2. Application.DoEvents()
    3. Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    4. Application.DoEvents()
    5. Loop
    6. WebBrowser1.Document.GetElementById("login_pwd").InnerText = KryptonTextBox2.Text
    7. WebBrowser1.Document.GetElementById("login_act").InnerText = KryptonTextBox1.Text
    8. WebBrowser1.Document.Forms(0).InvokeMember("submit")
    9. End If

    Er speichert die Cookies und leitet einen weiter, allerdings ist dann das Layout dank IFrame sehr seltsam, diesen umgehe ich mit meinem Programm, deshalb brauche ich die Weiterleitung auf eine lokale HTML-Seite, um ihn nicht laden zu lassen...
    Die HTML-Datei liegt im selben Verzeichnis als "LoginErfolgreich.html".
    Ich hoffe das reicht erstmal.
    MfG
    Sollten tatsächlich Cookies benötigt werden
    und der Server diese nicht a priori berechenbar
    erstellen, so gibt es keine Möglichkeit die Cookies
    zu übermitteln. Andernfalls könnte der Navigate
    Methode des WebBrowser-Steuerelementes als
    fünfter Parameter das Cookie-Feld übergeben
    werden.

    Sollten keine Cookies benötigt werden (und
    so scheint es mir derzeit)
    müssen die Inter-
    aktionsmöglichkeiten der Internet-Seite auf der
    lokalen Seite bereitgestellt werden. Konkret würde
    dies bedeuten, die Attribute aller "erfolgreichen
    Steuerelemente"
    und ihrer übergeordneten Formulare
    an die lokale Seite zu versenden.

    Ich persönlich würde aber versuchen die
    fehlerhafte Darstellung der Seite durch das
    Bearbeiten des DOM zu beheben. Das ist nicht
    nur einfacher, es würde sogar erlauben Cookies
    zu übertragen.
    Nun, eine Möglichkeit den Ladevorgang zu unterbinden
    ist mir nicht bekannt. Sofern aber nur das Layout
    durch diesen IFRAME zerstört wird, kann er auch
    einfach aus der Liste der DOM-Knoten entfernt werden:

    VB.NET-Quellcode

    1. Sub RemoveEvilIFRAMES()
    2. Dim parentNode As Object
    3. Dim listOfiFrames As Object
    4. Dim arrayOfNames() As String = {"sidebar", ...}
    5. 'Alle iFrames abrufen.
    6. Set listOfiFrames = WebBrowser.document.getElementsByTagName("IFRAME")
    7. 'iFrames entfernen.
    8. For Each iFrame As Object In listOfiFrames
    9. 'Soll dieses iFrame entfernt werden ?
    10. If arrayOfNames.Contains(iFrame.Name) Then
    11. 'Ja. Aus DOM-Hierarchie entfernen.
    12. Set parentNode = iFrame.parentNode
    13. parentNode.removeChild iFrame
    14. End If
    15. Next iFrame
    16. Next


    Möglicherweise enthält der Code Fehler. Ich habe
    ihn mithilfe der MSDN erstellt, da ich kein .NET habe.