Hallo,
ich möchte auf diese Horde-Seite von unserer Schule mit VB zugreifen. Ich habe sowas schonmal mit dem Webbrowsercontrol gemacht, was aber so unsauber & ineffizient war, dass ich das Projekt lieber gar nicht mehr öffne ;).
Mit dem Login per HttpWebrequest (mit dem ich es jetzt statt des Webbrowsercontrols machen möchte) klappt eigentlich alles so weit so gut, außer das anschließende Navigieren auf der Seite. Dazu habe ich einen neuen HttpWebRequest erstellt und mit dem gleichen CookieContainer wie beim Login verknüpft.
Spoiler anzeigen
Eigentlich sollte in Zeile 50 der Inhalt von der manager.php angezeigt werden, die - wenn man eingeloggt ist - das Ordnersystem auf dem Schulaccount ausgibt und wenn nicht, wird man auf die Startseite geleitet.
Die MsgBox bleibt aber leer - woran könnte das liegen :?::?::?:
Gruß, BjöNi
ich möchte auf diese Horde-Seite von unserer Schule mit VB zugreifen. Ich habe sowas schonmal mit dem Webbrowsercontrol gemacht, was aber so unsauber & ineffizient war, dass ich das Projekt lieber gar nicht mehr öffne ;).
Mit dem Login per HttpWebrequest (mit dem ich es jetzt statt des Webbrowsercontrols machen möchte) klappt eigentlich alles so weit so gut, außer das anschließende Navigieren auf der Seite. Dazu habe ich einen neuen HttpWebRequest erstellt und mit dem gleichen CookieContainer wie beim Login verknüpft.
VB.NET-Quellcode
- Imports System.Net, System.IO, System.Text.RegularExpressions, System.Security.Cryptography.X509Certificates
- Class frmLogin
- Public Class CertificateOverride
- Public Function RemoteCertificateValidationCallback(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As Security.SslPolicyErrors) As Boolean
- Return True
- End Function
- End Class
- Private Cookie = New CookieContainer
- Private Sub Login()
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Stelle Nutzerdaten zusammen..."))
- Dim Login As HttpWebRequest = HttpWebRequest.Create("https://141.62.131.114/horde3/imp/redirect.php")
- Dim Post As String = "imapuser=" & txtUser.Text & "&pass=" & txtPw.Text
- Dim CertOverride As New CertificateOverride
- ServicePointManager.ServerCertificateValidationCallback = AddressOf CertOverride.RemoteCertificateValidationCallback
- Login = HttpWebRequest.Create("https://141.62.131.114/horde3/imp/redirect.php")
- With Login
- .Method = "POST"
- .CookieContainer = Cookie
- .AllowAutoRedirect = True
- .Headers("useragent") = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"
- .ContentType = "application/x-www-form-urlencoded"
- .ContentLength = Post.Length
- End With
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Sende Nutzerdaten an Server..."))
- With New StreamWriter(Login.GetRequestStream)
- .Write(Post)
- .Close()
- End With
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Warte auf Server..."))
- With New StreamReader(Login.GetResponse.GetResponseStream)
- If .ReadToEnd.Contains("<frame name=""horde_menu"" src=""/horde3/services/portal/sidebar.php"" scrolling=""auto"" noresize=""noresize"" />") Then
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Passwort OK!"))
- Else
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Passwort FALSCH!"))
- Invoke(Sub() Enabled = True)
- Exit Sub
- End If
- .Close()
- End With
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Stelle Daten zusammen..."))
- Dim DownloadString As HttpWebRequest = HttpWebRequest.Create("https://141.62.131.114/horde3/gollem/manager.php")
- With DownloadString
- .CookieContainer = Cookie
- .ContentType = "application/x-www-form-urlencoded"
- .Headers("useragent") = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"
- .AllowAutoRedirect = True
- End With
- Invoke(Sub() status.Items.Add(Now.ToLongTimeString & ": Warte auf Server..."))
- With New StreamReader(DownloadString.GetResponse.GetResponseStream)
- MsgBox(.ReadToEnd())
- End With
- Invoke(Sub() Enabled = True)
- End Sub
- 'WEITERER (UNWICHTIGER) CODE, U.A. WIRD HIER EIN NEUER THREAD(ADRESSOF LOGIN) GESTARTET.
- End Class
Die MsgBox bleibt aber leer - woran könnte das liegen :?::?::?:
Gruß, BjöNi