2014-01-15 2 views
1

Привет, у меня есть сайт и я пытаюсь показать этот сайт только для пользователей моего браузера. (Мой браузер показывает только мой сайт тоже)Изменение Useragent для моего браузера (закодировано с помощью vb)

так я закодировать это браузер на Visual Basic экспресс

Public Class Form1 
    Dim userClickNavigate As Boolean = True 

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted 
     userClickNavigate = True 
    End Sub 

    Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating 
     If Not userClickNavigate Then 
      userClickNavigate = True 
      WebBrowser1.Navigate(e.Url, Nothing, Nothing, "User-Agent:Nokia-MIT-Browser/3.0") 
     End If 
    End Sub 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     userClickNavigate = False 
     WebBrowser1.Navigate("http://orenaksakal.org/demo2/", Nothing, Nothing, "User-Agent:Nokia-MIT-Browser/3.0") 
    End Sub 
End Class 

это работает очень хорошо на первый. Но у меня есть в моих php-файлах. этот код;

if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { 
    echo '<script type="text/javascript">alert("Bu site Internet Exploreri desteklemiyor!");</script>'; 
    die(); 

и когда я обновить страницу или перейти на следующую ссылку моих агента изменения пользователя больше не работают .. повернувшись к IE ..

как я могу всегда держать его для моей программы браузера?

+0

HTTP_USER_AGENT можно подделать. –

+0

спасибо, что предупредили меня, но все в порядке, я думаю, никто не попробует. Моя ссылка на страницу уникальна. – awdesign

ответ

0

В событии BeforeNavigate2 вы можете перехватить запрос браузера, отменить его и заменить на свой собственный. Ваш вызов метода Navigate2 приведет к тому, что событие снова запустится, поэтому вам нужно использовать переменную уровня формы для проверки и предотвращения рекурсии. Я не уверен, что вы делаете с флагом userClickNavigate, поэтому вам может понадобиться изменить это, чтобы работать с этим.

Option Explicit 

Private Const USER_AGENT = "User-Agent:Nokia-MIT-Browser/3.0" 'contant declaration of use agent 
Private mblnRecursing As Boolean ' form level variable to prevent recursion 

Private Sub Form_Load() 

    WebBrowser1.Navigate2 "http://orenaksakal.org/demo2" 

End Sub 

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean) 
    Dim MyHeaders As Variant 

    If (mblnRecursing = False) Then 
     mblnRecursing = True 
     Cancel = True 
     MyHeaders = Headers & USER_AGENT 
     WebBrowser1.Navigate2 URL, Flags, TargetFrameName, PostData, MyHeaders 
    End If 
    mblnRecursing = False 

End Sub 
+0

im получить много ошибок:/не знаю, как исправить это – awdesign

+0

@awdesign Я запустил этот точный код с моим собственным URL-адресом, поэтому я знаю, что он работает. Можете ли вы перечислить первые 2 или 3 ошибки в том порядке, в котором вы их получите? – jac

+0

2 ошибки, которые у меня есть сейчас; Ошибка Операции «Option» должны предшествовать объявлениям или операторам «Импорт». Ошибка Ошибка перегрузки не удалась, поскольку доступный «Навигация» не допускает это число аргументов. – awdesign

Смежные вопросы