c#WPF网络浏览器
我正在尝试做一个简单的Facebook登录。我有一个新窗口,在其中放置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
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