у меня вопрос, мне на кнопку нужно повесить два действия, 1 - Это перейти на другую страницу сайта, 2 - Удалить куки WebBrowser (IE 11). Вот код моей кнопки:
private void toolStripButton7_Click(object sender, EventArgs e)
{
try
{
webBrowser1.Navigate("http://site.ru/logout.php");
Task.Run(() => 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());}}}})())"));
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
webBrowser1.Navigate - Переходит на страницу логаута (происходит выход пользователя с сайта), далее мне нужно чтоб браузер удалил куки этого сайта, использую Tusk.Run со скриптом найденным в интернете. Но проблема в том, что такая кнопка не работает, а точнее не происходит логаут с сайта, только сбрасываются куки, ни каких ошибок нет, код исполняется, в чем проблема и как её решить я не пойму, помогите пожалуйста решить проблему.
Решение: Как подсказали в комментариях, браузер не успевал переходить по первой ссылке как уже начинал переходить по второй. Решил проблему подписавшись на событие DocumentCompleted, добавлю код решения, вдруг кому пригодится. Кнопка:
private void toolStripButton7_Click(object sender, EventArgs e)
{
try
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
webBrowser1.Navigate("http://site.ru/logout.php");
Console.WriteLine("LogOut");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Метод который срабатывает после нажатия кнопки и после завершения перехода по site.ru/logout.php очищая куки.
public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var webBrowser = sender as WebBrowser;
webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted;
Task.Run(() => 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());}}}})())"));
Console.WriteLine("Clear Cookies");
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста почему если использовать AjaxBeginForm, тогда нужно использовать кнопку с типом submit для отправки формы, а если использовать...
Пытаюсь скачать видео (любое) с сервиса Sibnet, провел тестирование получения ссылки на видео-файл, и успешно получаю нормальный Url, но при этом,...
Как мне можно присвоить Action'у методы (разные) с разным кол-вом параметров и при этом параметры разные
Мне нужно распарсить строкуОна может иметь один из вот таких видов: