我在app SDK中使用了Facebook SDK for .NET中的登录按钮控件,我需要将登录按钮控件的状态/状态从“Logout”更改为“Login”,即我需要注销用户通过代码手动。
怎么可能?
答案 0 :(得分:3)
使用FacebookClient.Logout
生成退出网址。
这只是一个样本。
private void btnLogout_Click(object sender, EventArgs e)
{
var fb = new FacebookClient();
var logoutUrl = fb.GetLogoutUrl(new
{
next = "https://www.facebook.com/connect/login_success.html",
access_token = _accessToken
});
var webBrowser = new WebBrowser();
webBrowser.Navigated += (o, args) =>
{
if (args.Url.AbsoluteUri == "https://www.facebook.com/connect/login_success.html")
Close();
};
webBrowser.Navigate(logoutUrl.AbsoluteUri);
}
请确保在登录时将access token
保留在某处,以便您也可以将其用于注销。
答案 1 :(得分:1)
不会要求用户提供他的凭据,因为Facebook身份验证cookie仍然存在于WebBrowser
控件中。
因此,要从Facebook完全注销用户,您需要清除WebBrowser
Cookie。
不幸的是,在Windows Phone 7上没有简单的方法可以删除cookie。
在Windows Phone 8上,您只需要调用ClearCookiesAsync 方法
await new WebBrowser().ClearCookiesAsync();
这是一个使用它的教程:
答案 2 :(得分:0)
我花了很多时间拖网捕鱼才得到这个。非常感谢Kulasangar
我稍微修改了你的代码,但它有效:
var identity = AuthenticationManager.GetExternalIdentity(DefaultAuthenticationTypes.ExternalCookie);
var accessToken = identity.FindFirstValue("FacebookAccessToken");
var fb = new FacebookClient(accessToken);
var logoutUrl = fb.GetLogoutUrl(new
{
next = "https://www.facebook.com/connect/login_success.html",
access_token = accessToken
});
Response.Redirect(logoutUrl.AbsoluteUri);