2013-02-21 129 views
2

我正在使用Facebook授权的WPF客户端上工作。我使用WebBrowser控件并显示facebook的登录页面,然后显示一些重定向,最后它显示我的页面,并在url中显示访问令牌。WebBrowser控件打开一个新窗口

然后我抓住这个令牌并保存它,我在窗体上调用Close()。窗口关闭,但几乎在IE弹出单独的窗口显示成功页面后。

如何停止弹出此新窗口?

这里是我的代码(有些)

private void WebBrowserNavigated(object sender, WebBrowserNavigatedEventArgs e) 
{ 

    string url = e.Url.ToString(); 

    var result = Regex.Match(url, @"access_token=(?<token>[\d|\w]+)&"); 
    if (result.Success) 
    { 
     string token = result.Groups["token"].Value; 
     Reader.SetAccessToken(token, SocialNetworkInformation.SocialNetwork.Facebook, url: e.Url); 

     this.Close(); 
    } 
} 
+0

我正面临同样的问题。你找到了避免这种情况的方法吗?我发现这不是发生在每台机器上,可能取决于IE版本。 – 2013-03-07 06:57:49

回答

0

我解决我的问题。不是最好的方式,但它的工作原理。

不是在收到响应后立即关闭表单,而是调用关闭此表单的委托方法。在0.3秒内设置一个定时器。该窗口存在足够长的时间来接收答案,但很难让用户看到答案。