Я использую элемент управления WebBrowser, чтобы определить, используют ли в списке сайтов свои заводские настройки по умолчанию для имени пользователя и паролей. Однако у меня возникают проблемы, так как DocumentCompleted, который я использую для имитации входа в систему, также вызывается после завершения входа в систему.
Кроме того, когда он работает, он зацикливает и выдает ложные сообщения о том, что несколько других сайтов имеют имя входа по умолчанию.
Я заметил эти проблемы и не могу обернуться вокруг этого днем. Не уверен, что это из-за того, что я устал или парень по ту сторону моего кубика поет каждое другое слово какой-то новой группы, которую он любит.
Если ничего другого, иногда это помогает мне напечатать все и прочитать это на следующий день, и, возможно, мой несколько рабочий источник может помочь кому-то еще в будущем.
Вопросы:
- Ложные срабатывания по фактическому сайту с использованием учетных данных по умолчанию
- Останавливает обработку, когда страница 404s или загружает неожиданную страницу
Код:
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