none
WebKit C# и Cookie RRS feed

  • Вопрос

  • Здравствуйте.

    Собственно из заголовка ясно, я не как не могу разобраться с печеньками :(

    Так как особого навыка программирования в c# нет, webkit только смотрю, а о cookie имею смутное представление, понять как всё это вместе должно работать не могу...

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

    Я создаю запрос посредством  метода:

    webKitBrowser1.Navigate("microsoft.com");

    После чего возникает ряд событий:

    webKitBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)

    webKitBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)


    Но как их сюда запихнуть я не знаю, а скорее всего вообще не в ту сторону смотрю :)

    Вообщем буду благодарен, если поясните, как это всё должно быть организованно :)

    Ну или за пинки в сторону хороших статей по этой теме.

    10 июля 2013 г. 10:05

Ответы

  • "Физически файлы куки явно не куда не сохраняются, поэтому при перезапуске авторизацию нужно повторять." - c WebKit работать не приходилось, но вот стандартный компонент браузера в C# это умеет.

    "В том то и проблема, что я понять не могу в какой момент времени они появляются(как я понимаю в результате обработки запроса, но знает-ли об этом webkit), как их сохранить,и впоследствии использовать." - стандартно задача по работе с куками должна выполняться браузером, кроме тех случаев когда вы собираете его вручную. Кука это обычная строка в составе ответа и запроса. Просто браузер его парсит и работает с ним отдельно.

    "А что там интересного в этой метки?" - она даёт северу указания на создание куки которая "будет жить" не одну сессию. Честно говоря с возможностями WebKit я не знаком, но возможно он это всё умеет. Но можете посмотреть в сторону Html Agility Pack или родного контрола библиотеки WinForms или WPF.


    Сделаем содержимое сообщества лучше, вместе!

    11 июля 2013 г. 6:32
    Модератор

Все ответы

  • Стандартно куки грузятся автоматически, и действительны в течении сессии. Если только они не отключены. Но вот только, чтобы они были действительны и после сессии, нужно на страницах входа явно уазывать,

    чтобы сервер возвращал куку с длинным периодом действия. Вам надо из кода достучаться до этой метки. К сожалению на данный момент времени нет написать подобный код.


    Сделаем содержимое сообщества лучше, вместе!

    10 июля 2013 г. 19:49
    Модератор
  • [quote]Стандартно куки грузятся автоматически, и действительны в течении сессии. Если только они не отключены. Но вот только, чтобы они были действительны и после сессии, нужно на страницах входа явно уазывать,[/quote]

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

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

    [quote]чтобы сервер возвращал куку с длинным периодом действия. Вам надо из кода достучаться до этой метки[/quote]

    А что там интересного в этой метки?

    Ну нажму я её программно как-нибудь так:

    webKitBrowser1.StringByEvaluatingJavaScriptFromString( " document.GetElementsByTagName('input')[2].click()");

    Это ведь ничего не изменить :(. И куки сохраняться не станут.Или я что-то не правильно понимаю?


    10 июля 2013 г. 21:15
  • "Физически файлы куки явно не куда не сохраняются, поэтому при перезапуске авторизацию нужно повторять." - c WebKit работать не приходилось, но вот стандартный компонент браузера в C# это умеет.

    "В том то и проблема, что я понять не могу в какой момент времени они появляются(как я понимаю в результате обработки запроса, но знает-ли об этом webkit), как их сохранить,и впоследствии использовать." - стандартно задача по работе с куками должна выполняться браузером, кроме тех случаев когда вы собираете его вручную. Кука это обычная строка в составе ответа и запроса. Просто браузер его парсит и работает с ним отдельно.

    "А что там интересного в этой метки?" - она даёт северу указания на создание куки которая "будет жить" не одну сессию. Честно говоря с возможностями WebKit я не знаком, но возможно он это всё умеет. Но можете посмотреть в сторону Html Agility Pack или родного контрола библиотеки WinForms или WPF.


    Сделаем содержимое сообщества лучше, вместе!

    11 июля 2013 г. 6:32
    Модератор
  • "Физически файлы куки явно не куда не сохраняются, поэтому при перезапуске авторизацию нужно повторять." - c WebKit работать не приходилось, но вот стандартный компонент браузера в C# это умеет.

    Стандартный компонент работает с IE, использует его настройки,кеш,куки и т.п. Он не подойдет у IE <=8 версии наблюдаются серьезные проблемы, не говоря уж о html5.

    Хотелось бы разобраться именно с webkit...

    11 июля 2013 г. 7:09
  • Стандартный компонент это просто управляемая обёртка вокруг IE.

    Сделаем содержимое сообщества лучше, вместе!

    11 июля 2013 г. 7:13
    Модератор