如何从WinRT WebView控件获取重定向URL

时间:2012-05-03 21:07:30

标签: c# webview windows-runtime winrt-xaml

我想通过服务上的OAuth验证Windows 8应用。 这可以通过使用WebView控件并使用适当的URL导航用户进行身份验证的服务。

如果用户通过该服务进行身份验证,则会将其重定向到成功页面。

我想获取有关此重定向的信息,以便我可以自动启动应用程序。

我已经尝试了加载页面时触发的LoadComplete事件,但是我只获取请求uri,而不是重定向uri。

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

有没有人知道如何获取重定向网址,或者至少是网页内容(我可以解析并查找类似“很棒,您已通过身份验证”的内容)

3 个答案:

答案 0 :(得分:4)

这种内置机制对用户来说更安全(应用程序无法窥探密码)。请参阅Web身份验证代理:http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122

答案 1 :(得分:2)

您可以通过以下方式获取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 ....
}

答案 2 :(得分:1)

您可以使用以下方法重定向到URL,然后阻止进一步重定向。

WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
    var url = args.Uri.ToString();
    if(url == "")
        args.Cancel = true;
}