Zwei Verschiedene Browser Login Verbinden Cookies Übergeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von seby1302.

    Zwei Verschiedene Browser Login Verbinden Cookies Übergeben

    Hallo Leute.
    Wie der titel schon sagt, Verwende ich grade 2 Verschiedene Browser aus verschiedene Gründen und Problemen.

    Nun
    WebBrowser = Login Quelltext auswerten
    GeckoWebbrowser Ist aber nicht eingeloggt da der keine Auktuelle SessionId hat un soweiter


    Nun Wie stelle ich das an das Gecko 1:1 mit WebBrowser läuft? ?(

    Hab vom WebBrowser auch die Cookies ausgelesen. Aber keine Ahnung wie ich die an Gecko Übergebe.

    VB.NET-Quellcode

    1. WebBrowser1.Document.Cookie

    Damit könnte ich schonmal die Cookies auslesen und auswerten.

    Lg

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo kann mir einer wenigstens sage was für ein wert bei Expiry kommt wenn es bis Session ende ist?
    Gecko.CookieManager.Add("Domanin", "Patch", "Name", Value, False, False, True, Expiry)

    Ungültige Konvertierung von der Zeichenfolge in Typ Long. Bezogen auf " "

    Ich habe Auch Nothing probiert, gibt mir kein Fehler fügt mir aber auch kein Cookie ein.

    lg
    Ja das ist mir klar...
    Aber es gibt Session Cookies, die haben kein Ablauf datum.
    Wenn ich also " " probiere kommt ja Fehler ist ja kein Long, wenn ich Nothing probiere kommt Zwar kein Fehler er setzt den Cookie aber nicht auf.

    Die frage ist also was kommt bei Expiry wenn es sich um (Nada, Nix, Kein Datum Handelt)?
    Ich könnte ein datum im Long Format aufsetzen, das ist nicht das Problem, problematisch wird es aber wen die Session abgelaufen ist, und du eigentlich ein neue SessionID bekommst weil der Cookie gelöscht wurde. mit datum musst du erst warten das es abgelaufen ist und solange gibt es auch kein neue SessionID
    Naja, wenn du versuchst eien String eizugeben, sieht das nich so aus, als ob Klarheit herrscht.

    Versuche es doch mal mit 0.
    Hallo das ging bei mir leider nicht mit 0 wahr der Cookie gelöscht, habe das so gemacht das wen die Session abgelaufen ist ich alle Cookie lösche und neu aufsetze.

    Aber nun andres Problem.

    Application 1 sendet per SendMessage am Application 2 Die WebBrowser1.Document.Cookie.

    Diese werte ich im Application 2 aus, und möchte nun das die zweite Application mit in der Session Von Application 1 einloggt.

    VB.NET-Quellcode

    1. WebBrowser1.Document.Cookie = CookieTextBox.Text
    2. InternetSetCookie("https://www.seite.com", Nothing, "sessionID= " & GetCookiesResult1 & "; expires = Sat,05-Jan-2033 00:00:00 GMT")


    Funzioniert aber nicht, Auserdem Müste ich da noch Patch HttpOnly und so weiter hinzufügen. ?(
    Hab einiges probiert der will aber einfach nicht.

    lg
    Beide web
    Keiner ne Ahnung wie es bei dem WebBrowser control abläuft?

    ich habe es auch so versucht funktioniert aber nicht

    VB.NET-Quellcode

    1. 'Dim container As CookieContainer = New CookieContainer()
    2. container.Add(New Cookie("SessionID", GetCookiesResult1, "/", "www.domain.com"))
    3. container.Add(New Cookie("Zweite", GetCookiesResult2, "/", ".domain.com"))


    und auch

    VB.NET-Quellcode

    1. Dim cookie1 As Cookie = New Cookie("SessionID", GetCookiesResult1, "/", "www.domain.com")
    2. InternetSetCookie("https://www.domain.com", Nothing, cookie1.ToString & "; expires = " & CookieslongValue2)
    3. Dim cookie2 As Cookie = New Cookie("Zweite", GetCookiesResult2, "/", ".domain.com")
    4. InternetSetCookie("https://www.domain.com", Nothing, cookie2.ToString & "; expires = " & CookieslongValue2)


    Bitte um hilfe wen einer was weiß, oder gibt es eine andre methode die 2 applicationen zu vebinden damit WebBrowser App1 und WebBrowser App2 auf die selbe Session greifen?

    Mit Gecko konnte ich soweit aber leider ist Gecko für mein Anwendung nix..
    Lg
    Verwendet das Webbrowser Control nicht eh den Internet Explorer? Da sind doch eh wenn du 2 Anwendungen hast die das Webbrowser Control nutzen die Cookies gleich oder irre ich mich da?

    Darf man Fragen was du genau vorhast ? Evtl kann man das ja anders lösen als da mit den Cookies rum zu fummeln.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Habe ich eigentlich auch gedacht, aber anscheinend nicht da ich mit Windows 10 IE 11 oder 12 habe die WebBrowser Controls bei Visual Studio 2012 IE 7.0 Verwenden.

    Also im Application 1 Ist ein WebBrowser Control womit ich das login ausführe, im Application 2 Soll ein WebBrowser Control Geben der mit im Session ein logt Von Application 1.

    Mein Problem Im App 2 soll ein flasch spiel laufen, nun ist das so das der WebBrowser wen es das Flash Contest Geladen hat Mein App Komplet Freezt, Heist Die application Macht garnix mehr solange ich nicht mit der Mauszeiger über Ein Controll(Button, Form, Label *Bewege*).

    Darum Bleibt mir Nix anders Über als Application und Browser zu trennen.

    Edit Sorry Visual Studio 2017
    schaue grad ob es da was neueres gibt ?(
    Hm sehr suspekt. Wie gesagt normalerweise wenn die beiden Anwendungen das Webbrowser Control drin haben und die beide auf dem gleichen System
    ausgeführt werden sollten beide Browser auf die gleichen Cookies zugreifen.

    Und irgendwas mit Flash da bin ich dann eh raus weil ja Flash ist nicht meins und beschäftige ich mich auch wenig mit.

    Evtl. weiß da jemand anderes mehr zu dem Thema.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Die hauptseite ist ja normales html das problem ist das die nicht im selben session sind...

    Dennoch habe ich geschaft mein webbrowser controll anzupassen... Wahr IE7 jetzt ist IE11 xD
    Leider funktioniert es immer noch nicht aber hier der code zum automatischen anpassen, einfach im ersten form laden...

    VB.NET-Quellcode

    1. Dim AppName As String = My.Application.Info.AssemblyName
    2. Dim VersionCode As Integer
    3. Dim Version As String = ""
    4. Dim ieVersion As Object = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Internet Explorer").GetValue("svcUpdateVersion")
    5. If ieVersion Is Nothing Then
    6. ieVersion = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Internet Explorer").GetValue("Version")
    7. End If
    8. If ieVersion IsNot Nothing Then
    9. Version = ieVersion.ToString.Substring(0, ieVersion.ToString.IndexOf("."c))
    10. Select Case Version
    11. Case "7"
    12. VersionCode = 7000
    13. Case Else
    14. If CInt(Version) >= 7 Then
    15. VersionCode = Version
    16. Else
    17. Throw New Exception("IE Version not supported")
    18. End If
    19. End Select
    20. Else
    21. Throw New Exception("Registry error")
    22. End If
    23. 'Check if the right emulation is set
    24. 'if not, Set Emulation to highest level possible on the user machine
    25. Dim Root As String = "HKEY_CURRENT_USER\"
    26. Dim Key As String = "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"
    27. Dim CurrentSetting As String = CStr(Microsoft.Win32.Registry.CurrentUser.OpenSubKey(Key).GetValue(AppName & ".exe"))
    28. If CurrentSetting Is Nothing OrElse CInt(CurrentSetting) <> VersionCode Then
    29. Microsoft.Win32.Registry.SetValue(Root & Key, AppName & ".exe", VersionCode)
    30. Microsoft.Win32.Registry.SetValue(Root & Key, AppName & ".vshost.exe", VersionCode)
    31. End If


    Edit: Der Code setzt Automatich den neusten Browser ein wen es ein neuerem auf dem pc gibt wie Version 7.00, allerdings Funktioniert das mit der Session immer noch nicht, wird wohl daran liegen das es zwar der selbe Browser ist... Jedoch emuliert?!

    Wen einer eine Idee hat bitte Melden Stehe auf dem schlauch... ||

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „seby1302“ ()

    Geschaaaaft uff 3 tage und am ende wahr es eine blödsin ^^

    VB.NET-Quellcode

    1. Dim SessionID1 As Cookie = New Cookie("SessionID", GetCookiesResult1, "/", ServerID & ".domain.com")
    2. InternetSetCookie("https://" & ServerID & ".domain.com", Nothing, SessionID1.ToString & "; expires=" & CookieslongValue2)



    Ich hatte Beim InternetSetCookie("https://www.domain.com" und das mag der nicht :D

    lg