2

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

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

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

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

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

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

4

3 回答 3

4

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

于 2012-05-03T23:27:52.813 回答
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 ....
}
于 2012-10-18T15:12:02.430 回答
1

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

WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
    var url = args.Uri.ToString();
    if(url == "")
        args.Cancel = true;
}
于 2018-04-19T02:50:17.217 回答