none
AxWebBrowser Seiten sperren RRS feed

  • Frage

  • Hallo,

    ich habe eine Frage bezüglich des AxWebBrowsers. Ich habe einen vollständigen Webbrowser mit Ribbon-Style etc. für meine Website gecodet. Nun stehe ich vor einem Problem: Ich will (möglichst mit einer einfach zu verwaltenden Liste) einige hundert Internetseiten sperren lassen und auf eine sichere Seite meines Servers umleiten. (von wegen Basisschutz mit Phishing und co.)

    Ich habe bereits  versucht  mit Like und Compare die e.URL mit einem String vergleichen zu lassen und je nach Ergebnis Aktionen auszuführen. So ist es mir durchaus möglich, Seiten zu sperren, aber wenn die Zahl steigt, wird dies unflexibel und unhandlich. Hat jemand eine Idee, wie ich das "Listenmäßig" regeln könnte? Mir käme da durchaus txt Dateien oder XML in den Sinn,  aber genaue Pläne habe ich damit nicht. Vielleicht hat ja jemand ein Codebeispiel, daran lernt man auch am besten ;-)

    Einige snippets, was ich bis jetzt probiert habe:

        Private Sub AxWebBrowser1_BeforeNavigate2(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event) Handles AxWebBrowser1.BeforeNavigate2
    
            If My.Settings.BsecModuleON_OFF = True Then
                e.uRL.ToString()
    
                If e.uRL.Contains("ichbingefährlich.de") = True Then
                    AxWebBrowser1.Stop()
                    MessageBox.Show("Seite gefährlich, sie werden umgeleitet", "BrowserName", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    AxWebBrowser1.Navigate("http://www.haumichtot.de/")
                End If
    
        End Sub

     

    oder auch das hier:

    Private Sub AxWebBrowser1_BeforeNavigate2(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event) Handles AxWebBrowser1.BeforeNavigate2
    
            If My.Settings.BsecModuleON_OFF = True Then
    
                e.uRL.ToString()
    
                If e.uRL Like ("*ichbingefährlich.de*") Or e.uRL Like ("*ichbingefährlich2.de*") = True Then
    
                    AxWebBrowser1.Stop()
    
                    MessageBox.Show("Seite gefährlich, sie werden umgeleitet", "BrowserName", MessageBoxButtons.OK, MessageBoxIcon.Error)
    
                    AxWebBrowser1.Navigate("http://www.haumichtot.de/")
    
                End If

     

     

    Wäre nett, wenn mir jemand helfen könnte....

    Grüße

    Mittwoch, 31. März 2010 00:10

Antworten

  • Hallo vb.net-tier,

    Man konnte zum Beispiel eine Array erstellen (kann auch von einer Text Datei gefüllt werden) und dann auf dem Navigating Ereignis des WebBrowser Steuerlement kann man prüfen in einer For Each Schleife ob die Seite mit dem Element aus dem Array passend ist.

    Public Class Form1
        Dim arr() As String = {"ichbingefährlich.de", "ichbingefährlich2.de"}
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            WebBrowser1.Navigate("http://www.ichbingefährlich.de.com")
        End Sub
    
        Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    
            For Each arrElement In arr
                If e.Url.Host.ToLower Like ("*" + arrElement + "*").ToLower Then
                    MsgBox("Zugriff auf folgende URL wurde verweigert: " & e.Url.ToString())
                    e.Cancel = True
                    Exit For
                End If
            Next
    
    
        End Sub
    End Class

     

    Lies mal auch folgender Artikel:

    http://msdn.microsoft.com/en-us/library/aa752044(VS.85).aspx

    Grüße,

    Robert

    Mittwoch, 7. April 2010 14:16
    Moderator

Alle Antworten

  • Hat keiner eine Idee? Das Projekt ist - außer dieser Sache - fertig und ich kann es sonst nicht auf meine Website stellen.....

     

    Grüße

    Mittwoch, 31. März 2010 16:38
  • Hallo vb.net-tier,

    Man konnte zum Beispiel eine Array erstellen (kann auch von einer Text Datei gefüllt werden) und dann auf dem Navigating Ereignis des WebBrowser Steuerlement kann man prüfen in einer For Each Schleife ob die Seite mit dem Element aus dem Array passend ist.

    Public Class Form1
        Dim arr() As String = {"ichbingefährlich.de", "ichbingefährlich2.de"}
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            WebBrowser1.Navigate("http://www.ichbingefährlich.de.com")
        End Sub
    
        Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    
            For Each arrElement In arr
                If e.Url.Host.ToLower Like ("*" + arrElement + "*").ToLower Then
                    MsgBox("Zugriff auf folgende URL wurde verweigert: " & e.Url.ToString())
                    e.Cancel = True
                    Exit For
                End If
            Next
    
    
        End Sub
    End Class

     

    Lies mal auch folgender Artikel:

    http://msdn.microsoft.com/en-us/library/aa752044(VS.85).aspx

    Grüße,

    Robert

    Mittwoch, 7. April 2010 14:16
    Moderator