2014-01-21 7 views
5

Можете ли вы сказать, как я могу удалить все файлы cookie в private System.Windows.Forms.WebBrowser webBrowser1. Я использовалУдалить cookies в webBrowser без перезагрузки

[DllImport("wininet.dll", SetLastError = true)] 
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); 

Я хочу сделать это с помощью кнопки.

private void button1_Click(object sender, EventArgs e) 
{ 
     InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); 
} 

Но это не сработает. И я знаю о 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());}}}})())"); Это не подходит для меня.

+0

Это может сработать, но это недокументировано: http://stackoverflow.com/q/17369275/1768303. Это также может помочь, в зависимости от ваших целей: http://stackoverflow.com/a/21254020/1768303. – Noseratio

+1

Я не совсем понимаю, куда я должен поставить динамический 'document = webBroweser.Document; document.execCommand ("ClearAuthenticationCache", false); 'Внутри моей кнопки? Я получаю Microsoft.CSharp.RuntimeBinder.RuntimeBinderException в System.Core.dll – jenius

+1

System.Windows.Forms.HtmlDocument не содержит определения для «execCommand» – jenius

ответ

5

правильно типирование выглядит следующим образом:

dynamic document = webBrowser1.Document; 
document.ExecCommand("ClearAuthenticationCache", false, null); 

Приветствия.

+3

Не работает с потоком .Net 4.5 и Facebook. –

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