Я использую элемент управления WebBrowser, чтобы определить, использует ли список сайтов заводские имена пользователя и пароли по умолчанию. Однако у меня возникают проблемы, поскольку DocumentCompleted, который я использую для имитации входа в систему, также вызывается после завершения входа в систему.
Кроме того, когда он работает, он зацикливается и дает ложные сообщения о том, что несколько других сайтов имеют логин по умолчанию.
Я заметил эти проблемы и не могу понять это сегодня днем. Не уверен, что это из-за того, что я устал или парень по другую сторону моего куба напевает каждое слово какой-то новой группы, которая ему нравится.
По крайней мере, иногда это помогает мне напечатать все и прочитать это на следующий день, и, возможно, мой несколько рабочий источник может помочь кому-то еще в будущем.
Вопросы:
- Ложные срабатывания после фактического сайта с использованием учетных данных по умолчанию
- Прекращает обработку, когда страница 404 или загружает непредвиденную страницу
Код:
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
WebBrowser.Navigate(linqData(i).URL)
End Sub
Private Sub WebBrowser_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser.DocumentCompleted
' Check for Default Login
Login("administrator", "password")
' Determine Results
If WebBrowser.Url.ToString.Contains("index.php") Then
' Successfully Logged In
LogData("Successfully Logged In to " & linqData(i).Name)
NextSite()
ElseIf WebBrowser.Url.ToString.Contains("loginfailed.php") Then
' Failed to Login
NextSite()
End If
End Sub
Sub Login(Username As String, Password As String)
Dim FoundUsernameTextbox As Boolean = False
Dim FoundPasswordTextbox As Boolean = False
Try
' Find Username Textbox
Try
WebBrowser.Document.GetElementById("nameInput").InnerText = Username
FoundUsernameTextbox = True
Catch ex As Exception
End Try
' Find Password Textbox
Try
WebBrowser.Document.GetElementById("pass").InnerText = Password
FoundPasswordTextbox = True
Catch ex As Exception
End Try
' Find Login Button and Click
Try
If FoundUsernameTextbox And FoundPasswordTextbox Then
WebBrowser.Document.GetElementById("submit").InvokeMember("click")
End If
Catch ex As Exception
End Try
Catch ex As Exception
End Try
End Sub
Sub NextSite()
Try
i += 1
If i < linqDataRecordCount Then
WebBrowser.Navigate(linqData(i).URL)
Else
LogData("Finished at " & DateTime.Now)
End If
Catch ex As Exception
End Try
End Sub