Сделайте контроль WebBrowser, чтобы удалить его кеш - PullRequest
0 голосов
/ 30 июня 2018

, поэтому я делаю тестовое приложение, которое регистрируется на веб-сайте и, если указанные учетные данные действительны, то разделяет их. когда мой веб-браузер получает успешный вход в систему, и программа начинает повторяться, чтобы проверить оставшиеся учетные данные, вошедшая в систему учетная запись кэшируется. я пытался

Me.WebBrowser1.Refresh(WebBrowserRefreshOption.Completely)

и несколько других методов, таких как nevigating to about: blank, но безуспешно, даже когда я перезапускаю программу. Webbrowser1 открывает кешированную учетную запись. Я хочу сделать веб-браузер в состоянии сброса (запуска) после получения хорошего входа в систему.

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете отключить кеш (включая куки) перед переходом на сайт.

Для этого вы можете использовать функцию API InternetSetOption и установить для параметра INTERNET_OPTION_SUPPRESS_BEHAVIOR(81) значение INTERNET_SUPPRESS_COOKIE_PERSIST(3).

Пример

Я попробовал следующий пример, который отключает кэш, и хотя я вошел в систему outlook.com, но он работает как начало нового сеанса:

Imports System.Runtime.InteropServices
Public Class Form1
    <DllImport("wininet.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Public Shared Function InternetSetOption(hInternet As IntPtr, dwOption As Integer, _
        lpBuffer As IntPtr, dwBufferLength As Integer) As Boolean
    End Function

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim ptr = Marshal.AllocHGlobal(4)
        Marshal.WriteInt32(ptr, 3)
        InternetSetOption(IntPtr.Zero, 81, ptr, 4)
        Marshal.Release(ptr)
        WebBrowser1.Navigate("https://outlook.com")
    End Sub
End Class

Чтобы найти больше информации об этих флагах, взгляните на Флажки Windows Internet Option .

Примечание. Вы можете найти версию этого ответа на C #, здесь в моем другом посте.

...