2013-02-21 172 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秒內設置一個定時器。該窗口存在足夠長的時間來接收答案,但很難讓用戶看到答案。