Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#WPF网络浏览器_C#_Wpf_Facebook - Fatal编程技术网

c#WPF网络浏览器

c#WPF网络浏览器,c#,wpf,facebook,C#,Wpf,Facebook,我正在尝试做一个简单的Facebook登录。我有一个新窗口,在其中放置System.Windows.Controls.WebBrowser,然后导航到 但在我登录后,它会将我重定向到 其中我应该有令牌,但是System.Windows.Controls.WebBrowsercontrol-Source属性没有给我完整的URL,给了我 https://www.facebook.com/connect/login_success.html而不是https://www.facebook.com/c

我正在尝试做一个简单的Facebook登录。我有一个新窗口,在其中放置
System.Windows.Controls.WebBrowser
,然后导航到

但在我登录后,它会将我重定向到

其中我应该有令牌,但是
System.Windows.Controls.WebBrowser
control-Source属性没有给我完整的URL,给了我

https://www.facebook.com/connect/login_success.html
而不是
https://www.facebook.com/connect/login_success.html#access_token=THE_TOKEN&expires_in=7180

看看这个 我想这会解决你的问题! 您将需要:

<Window x:Class="WpfApplicationTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
        Title="Window2" Height="300" Width="300">
     <StackPanel>
        <wfi:WindowsFormsHost>
            <wf:WebBrowser Navigated="WebBrowser_Navigated" x:Name="wfwb"/>
        </wfi:WindowsFormsHost>
     </StackPanel>
</Window>

看看这个 我想这会解决你的问题! 您将需要:

<Window x:Class="WpfApplicationTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
        Title="Window2" Height="300" Width="300">
     <StackPanel>
        <wfi:WindowsFormsHost>
            <wf:WebBrowser Navigated="WebBrowser_Navigated" x:Name="wfwb"/>
        </wfi:WindowsFormsHost>
     </StackPanel>
</Window>

只需为c#添加对facebook.dll的引用,并使webbrowser.Navigated事件对我有效

private void m_WebBrowser_Navigated(object sender, NavigationEventArgs e)
    {
        Uri url = e.Uri;
        FacebookOAuthResult result;
        dynamic fb = new FacebookClient();

        if (fb.TryParseOAuthCallbackUrl(url, out result))
        {
            if (result.IsSuccess)
            {
                AccessToken = result.AccessToken;
                Window window = Window.GetWindow(this);
                window.Close();                    
            }
            else
            {
                var errorDescription = result.ErrorDescription;
                var errorReason = result.ErrorReason;
            }
        }
    }

只需为c#添加对facebook.dll的引用,并使webbrowser.Navigated事件对我有效

private void m_WebBrowser_Navigated(object sender, NavigationEventArgs e)
    {
        Uri url = e.Uri;
        FacebookOAuthResult result;
        dynamic fb = new FacebookClient();

        if (fb.TryParseOAuthCallbackUrl(url, out result))
        {
            if (result.IsSuccess)
            {
                AccessToken = result.AccessToken;
                Window window = Window.GetWindow(this);
                window.Close();                    
            }
            else
            {
                var errorDescription = result.ErrorDescription;
                var errorReason = result.ErrorReason;
            }
        }
    }

我使用WindowsFormsHost和System.Windows.Forms.WebBrowser完成了它,但是通过编程实现的。感谢您的快速回答:PI使用WindowsFormsHost和System.Windows.Forms.WebBrowser完成了这项工作,但采用了编程方式。谢谢你的快速回答:P