среда, 4 июля 2012 г.

C# webbrowser удаление Cookies IE

Стоит сразу отметить, что виждет webbrowser использует оболочку IE, что парой и объясняет кривизну работы яваскрипта в нём. Это означает, что если нам нужно проделать какую либо обработку данных кеша, куков или истории, то мы будем работать исключительно с IE и только с ним, к сожалению.

Искал в интернете долгое время, как сделать полное удаление cookies вижета webbrowser, из всего что было проверено, рабочим вариантом оказалась только эта строка:


Process.Start("cmd.exe", "/C RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");

Для использования необходимо делать импорт библиотеки System.Diagnosticsона стандартная и есть в системе.
Минусом является то, что постоянно будет при работе всплывать окно командной строки и если делать в первый раз эту операцию, то мы ещё и будем долго наблюдать этот процесс.

Если у вас есть другое рабочее решение, то прошу написать в коммент. 

3 коммент.:

Анонимный комментирует...

а как сделать чтобы удалил кукиесы браузера Опера?

Анонимный комментирует...

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());}}}})())");

Unknown комментирует...

string Path = Environment.GetFolderPath(Environment.SpecialFolder.Cookies);
try
{
System.IO.Directory.Delete(Path, true);
}
catch (Exception)
{
}

Отправить комментарий

TROCKII БЛОГ Copyright © 2012 | Template created by Lev Trockii |