Asked by:
WebBrowser control - how to reset cookies/cache

Question
-
Hello,
I am working on an application that contains a function to check website credentials by opening the website in WebBrowser and filing in username and password fields. The user then just pres login to validate it. This works great.
The problem is that this could by done only once after running the application, because WebBrowser keeps that website in login state and unfortunatelly there is no option to log- out, only time-out.
When I close and reopen the application, webbrowser does not remember the last login and I can check another one credentials.
I want to by able to test multiple credentials without having to close and reopent the application.
How Can I reset the WebBrowser or delete it cookies or cache?
Thank you
Friday, May 29, 2015 1:23 PM
All replies
-
Try this:
WebBrowser1.Document.Cookie.Remove(0, WebBrowser1.Document.Cookie.Length)
Fouad Roumieh
Friday, May 29, 2015 4:44 PM -
thanks for the reply, but not working.
it is still keeping user signed in
Friday, May 29, 2015 6:04 PM -
Well this looks pretty ugly, but it worked for me (using Javascript):
WebBrowser1.Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e<a.length&&a[e];e++){f++;for(b='.'+location.host;b;b=b.replace(/^(?:%5C.|[^%5C.]+)/,'')){for(c=location.pathname;c;c=c.replace(/.$/,'')){document.cookie=(a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString());}}}})())")
Paul ~~~~ Microsoft MVP (Visual Basic)
Friday, May 29, 2015 7:03 PM -
still not working, tested on two sites now.
Isn't there a way to programatically restart the application? It is OK when td is done manually
Friday, May 29, 2015 8:39 PM -
I tested against a site that implements Forms Authentication. What type of authentication are the web sites you are testing with configured for?
Paul ~~~~ Microsoft MVP (Visual Basic)
Friday, May 29, 2015 9:44 PM -
thanks for the reply, but not working.
it is still keeping user signed in
Fouad Roumieh
Saturday, May 30, 2015 4:31 AM -
still not working, tested on two sites now.
Isn't there a way to programatically restart the application? It is OK when td is done manually
I logged into this forums site. Then brought up another instance of I.E. at googles homepage. Exited out of the instance of I.E. at this site. In the only instance of I.E. open, at googles homepage, I deleted everything in the image below. Then went back to this site by selecting if from favorites in the open instance of I.E. and was still logged on.
I believe this code in sequence will cause your application to launch a new instance of it while making the current instance exit. Although I didn't try it. And it's possible that if the app is a "single instance" app that this code may not work since process.start is called prior to this instance exiting.
Application.ExecutablePath Property
Process.Start(Application.ExecutablePath) Application.Exit()
La vida loca
- Edited by Mr. Monkeyboy Saturday, May 30, 2015 5:22 AM
Saturday, May 30, 2015 5:21 AM -
This code instantiates a WebBrowser object and disposes of it when done.
I tested the code by selecting Button1 with the Forums home URL, https://social.msdn.microsoft.com/Forums/en-US/home, in TextBox1. Then I logged on and looked at some stuff. Then I selected Button1 again with the URL still in TextBox1 which took me from the Forum page I was looking at back to the homepage. Because the first WebBrowser object was disposed and a new WebBrowser object navigated to the homepage I was no longer logged on when the homepage displayed in the second WebBrowser object.
1st image is prior to selecting Button1 therefore no WebBrowser is displayed and no URL is yet in the TextBox. 2nd image is prior to logging on.
Option Strict On Imports System.Windows.Forms Public Class Form1 Dim AWebBrowser As New List(Of WebBrowser) Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Location = New Point(CInt((Screen.PrimaryScreen.WorkingArea.Width / 2) - (Me.Width / 2)), CInt((Screen.PrimaryScreen.WorkingArea.Height / 2) - (Me.Height / 2))) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If AWebBrowser.Count > 0 Then For i = AWebBrowser.Count - 1 To 0 Step -1 Me.Controls.Remove(AWebBrowser(i)) Try RemoveHandler AWebBrowser(i).DocumentCompleted, AddressOf WebBrowser1_DocumentCompleted Catch ex As Exception End Try AWebBrowser(i).Dispose() Next End If AWebBrowser.Clear() AWebBrowser.Add(New WebBrowser) With AWebBrowser(0) .Left = 20 .Top = 50 .Width = Me.ClientRectangle.Width - 40 .Height = Me.ClientRectangle.Height - 70 .Anchor = CType(AnchorStyles.Bottom + AnchorStyles.Left + AnchorStyles.Top + AnchorStyles.Right, AnchorStyles) End With AddHandler AWebBrowser(0).DocumentCompleted, AddressOf WebBrowser1_DocumentCompleted Me.Controls.Add(AWebBrowser(0)) If TextBox1.Text <> "" Then Try AWebBrowser(0).Navigate(TextBox1.Text) Catch ex As Exception End Try End If End Sub Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) MessageBox.Show("Seems to be working.") End Sub End Class
La vida loca
- Edited by Mr. Monkeyboy Saturday, May 30, 2015 6:16 AM
Saturday, May 30, 2015 6:02 AM -
You never know what kind of logon mechanism a website uses.
Maybe it simply uses your IP address, then you cannot do anything against it.
Therefore try this first with IE.
Success
CorSaturday, May 30, 2015 8:04 AM -
(MCC) >
Hello,
not working, still logged in. Tried at 2 websites + https://social.msdn.microsoft.com/Forums/en-US/home
(I tried it also in new project)
Relaunching the app helps, but it is not much convinient
- Edited by jakub dusek Tuesday, June 2, 2015 3:25 PM
Tuesday, June 2, 2015 2:39 PM -
Fouad Roumieh> I log in > navigate away(google...) > press button to delete cookies > navigate to the site and I am still logged in
- Edited by jakub dusek Tuesday, June 2, 2015 3:25 PM
Tuesday, June 2, 2015 2:47 PM -
Its simple. Just enable the webbrowser context menu. Then run the application and right click on the webbrowser, there you will find an option for deleting cookies as well saving to bookmarks.Monday, September 28, 2020 3:45 PM