none
Возможная ошибка в .NET Framework (Реализация WebBrowser Control в WPF, Windows Phone) RRS feed

  • Общие обсуждения

  • Проблема которая возникла описана здесь:

    http://social.msdn.microsoft.com/Forums/ru-RU/csharpru/thread/fe7c296d-e11e-430f-9b50-861eb6005449

    Вкратце - веб браузер в WPF не возвращает в событие Navigated часть ответа. Это является критичным для создания компонента авторизации приложений для соц. сети вКонтакте.

    Если в случае Desktop приложений без этого можно было обойтись (Windows Forms также содержит браузер который нормально работает), то в случае Windows Phone такое невозможно.

    Выхода три:

    1. Показать код, который выдаст потерянную часть ответа
    2. Исправить косяк в фремворке
    3. Ничего не делать :)
    • Изменен тип I.Vorontsov 6 сентября 2010 г. 6:27
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 23:30 MSDN Forums consolidation (От:Форум по .NET Framework)
    1 сентября 2010 г. 7:21

Все ответы

  • Напишите об этом в Microsoft Products Accepting Bugs and Suggestions
    Для связи [Mail]
    2 сентября 2010 г. 8:50
  • Я туда написал

    https://connect.microsoft.com/VisualStudio/feedback/details/593832/possible-bug-in-webbrowser-control-realization-in-wpf-and-windows-phone-7

    более того, эта ошибка даже в Facebook вылезала:

    http://facebooktoolkit.codeplex.com/Thread/View.aspx?ThreadId=218406

    10 сентября 2010 г. 22:53
  • День добрый уже несколько дней бьюсь с такой же проблемой... перебираю разные методы.. вот на этом я сейчас остановился..

    WebClient wc = new WebClient();

    wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
                wc.OpenReadAsync("http://vkontakte.ru/login.php?app=1960928&layout=popup&type=browser&settings=16383");

     void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)

    {

    e.Result

    }

    Обект e.Result содержит некий внутренний класс

    base {System.IO.Stream} = {MS.Internal.InternalMemoryStream}

    А внутри есть заветное поле...

    FinalUri = {http://vkontakte.ru/api/login_success.html#session={"mid":007,"sid":"36a98556002808cdccdfb48516c027c26053525a73048c7ec7ace00dc1","secret":"007","expire":0,"sig":"007"}}

     

    И теперь самый главный вопрос как его оттуда забрать +)

    30 сентября 2010 г. 12:55
  • Я думаю забрать его можно с помощью Reflection. Кстати, о какой платформе сейчас идёт речь? WPF, Silverlight или Silverlight для Windows Phone 7? Это очень важно, поскольку если решение работает только для WPF, то оно бесполезно, т.к. проще уж Windows Forms реализацию запихать.

     

    Для себя я сделал реализацию через HttpWebRequest и на этом решил пока остановиться - до момента исправления бага. Я вручную парсю заголовки Set-cookie, генерирую POST-ответы. В финале получаю заветную сессию.

    30 сентября 2010 г. 18:37
  • Silverlight  4. Собственно думаю для WP7 все аналогично...

    Сейчас, посмотрю по теме Reflection, так же есть идея по поводу Сериализации..

    Парсить куки вроде как запрещено там. Не хочется быть вне закона +)

    У себя побывал подобную реализацию, но что то не выходит.. не могу в тонкостях разобраться.

    Так что если есть возможность взглянуть на код решения заранее спс.

    1 октября 2010 г. 13:15