我想写一个简单的win-forms工具来管理不同的社交帐户。
如果用户拥有多个Facebook帐户,我会遇到问题。当我尝试以第二个用户身份登录时,我刚刚在webBrowser中重定向页面。
我尝试使用InternetSetOption和INTERNET_SUPPRESS_COOKIE_PERSIST标志,但似乎没有帮助。我该如何解决这个问题?
登录代码
var lParameters = new Dictionary<string, object>();
lParameters["client_id"] = AppId;
lParameters["redirect_uri"] = "https://www.facebook.com/connect/login_success.html";
lParameters["response_type"] = "token";
lParameters["display"] = "popup";
lParameters["scope"] = "user_about_me";
Uri lUri = mFacebookClient.GetLoginUrl(lParameters);
Main.webBrowser.Navigate(lUri);
增加: 也许我在使用InternetSetOption做错了什么?对不起新手问题。我应该像在这个答案中一样使用它How do I use InternetSetOption?看起来很难......
答案 0 :(得分:4)
最可能的原因是因为Facebook正在使用会话ID设置cookie。 INTERNET_SUPPRESS_COOKIE_PERSIST只使cookie非持久性,它们将在浏览器被销毁或浏览器会话结束后被清除,因此如果您使用相同的实例,它们仍将存活。
您可以使用InternetSetOption(0,42,NULL,0)完成浏览会话; (取自这里:http://social.msdn.microsoft.com/Forums/eu/csharpgeneral/thread/76a38eee-3ef6-4993-a54d-3fecc4eb6cff),所以结合INTERNET_SUPPRESS_COOKIE_PERSIST和INTERNET_OPTION_END_BROWSER_SESSION(就是42的意思)它应该被清除并准备好进行新的登录。