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

C# 如何从WinRT WebView控件获取重定向URL,c#,webview,windows-runtime,winrt-xaml,C#,Webview,Windows Runtime,Winrt Xaml,我想通过OAuth对服务上的windows 8应用程序进行身份验证。 这通过使用WebView控件来实现,并使用正确的URL将用户导航到进行身份验证的服务 如果用户通过服务验证,他将被重定向到成功页面 我想获得有关此重定向的信息,以便自动启动应用程序 我尝试了加载页面时触发的LoadComplete事件,但在那里我只得到请求uri,而没有重定向uri webView.LoadCompleted += webView_LoadCompleted; webView.Navigate(new Uri(

我想通过OAuth对服务上的windows 8应用程序进行身份验证。 这通过使用WebView控件来实现,并使用正确的URL将用户导航到进行身份验证的服务

如果用户通过服务验证,他将被重定向到成功页面

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

我尝试了加载页面时触发的LoadComplete事件,但在那里我只得到请求uri,而没有重定向uri

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

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

有一种内置机制,对用户来说更安全(应用程序无法窥探密码)。请参阅web身份验证代理:

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

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

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

您是否正在重定向到(或任何其他端口)?当您在那里收到请求时,这意味着您已准备就绪。+1另一个优点是UI与登录到web服务的其他应用程序保持一致。