Как получить RedirectURL из элемента управления WinRT WebView

Я хочу аутентифицировать приложение Windows 8 через OAuth в службе. Это работает с помощью элемента управления WebView и перехода пользователя с правильным URL-адресом к службе, в которой происходит аутентификация.

Если пользователь аутентифицирован службой, он перенаправляется на страницу успеха.

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

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

webView.LoadCompleted += webView_LoadCompleted;
webView.Navigate(new Uri("service uri));

Кто-нибудь знает, как получить URL-адрес перенаправления или, по крайней мере, содержимое страницы (это я мог бы проанализировать и найти что-то вроде «отлично, вы прошли аутентификацию»)


person Manuel    schedule 03.05.2012    source источник
comment
Вы перенаправляете на localhost:8080 (или любой другой порт)? Когда вы получаете запрос там, это означает, что вы готовы к работе.   -  person kiewic    schedule 18.10.2012


Ответы (3)


Для этого существует встроенный механизм, более безопасный для пользователей (приложения не могут отслеживать пароли). См. Брокер веб-аутентификации: http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122

person Robert Levy    schedule 03.05.2012
comment
+1 Еще одним плюсом является то, что пользовательский интерфейс совместим с другими приложениями, входящими в веб-службы. - person Patrick; 22.03.2013

Вы можете получить содержимое страницы WebView следующим образом:

private void webView_LoadCompleted_1(object sender, NavigationEventArgs e)
{
    WebView webView = sender as WebView;
    string html = webView.InvokeScript("eval", new string[] {"document.documentElement.outerHTML;"});

    // Here you can parse html ....
}
person kiewic    schedule 18.10.2012

Вы можете использовать следующий метод, чтобы перенаправить на URL-адрес, а затем заблокировать дальнейшее перенаправление.

WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
    var url = args.Uri.ToString();
    if(url == "")
        args.Cancel = true;
}
person Trikutam Gargeya Sai Nikhil    schedule 19.04.2018