0
我成功實施了Facebook連接,並且能夠使用Facebook工具包檢索用戶信息。但我無法成功註銷。 當我按下Facebook的註銷按鈕無法刪除我在Facebook Connect後得到的Cookies
<fb:login-button autologoutlink="true"></fb:login-button>
我還有五個Facebook的餅乾(當我登錄,因爲我使用的autologoutlink屬性自動出現): MyApiKey MyApiKey_ss MyApiKey_SessionKey MyApiKey_expires MyApiKey_user
我登出後,我真的在Facebook的註銷,因爲我需要在facebook.com再次登錄,但isConnected()
總是返回true,我仍然可以檢索用戶的信息:
var connectSession = new ConnectSession(ConfigurationManager.AppSettings["ApiKey"], ConfigurationManager.AppSettings["Secret"]);
if (connectSession.IsConnected())
{
var api = new Api(connectSession);
filterContext.Controller.ViewData["FBUser"] = api.Users.GetInfo();
}
首先,我不明白爲什麼我仍然可以檢索用戶信息,即使我沒有再登錄,第二:如何刪除這個Cookies。以下代碼不起作用:
public static void ClearFacebookCookies()
{
String[] shortNames = new String[] { "_user", "_session_key", "_expires", "_ss", "" };
HttpContext currentContext = HttpContext.Current;
if (currentContext == null)
{
return;
}
string appKey = ConfigurationManager.AppSettings["APIKey"];
if (appKey == null)
{
throw new Exception("APIKey is not defined in web.config");
}
foreach (var name in shortNames)
{
string fullName = appKey + name;
HttpCookie cookie = currentContext.Response.Cookies[fullName];
if (cookie != null)
{
cookie.Value = null;
cookie.Expires= DateTime.Now.AddDays(-1d);
}
HttpCookie cookieRequest = currentContext.Request.Cookies[fullName];
if (cookieRequest != null)
{
cookieRequest.Value = null;
cookieRequest.Expires = DateTime.Now.AddDays(-1d);
}
}
}// end Method