【问题标题】:Can't delete Cookies that I get after Facebook Connect无法删除我在 Facebook Connect 后获得的 Cookie
【发布时间】:2015-07-11 17:45:28
【问题描述】:

我成功实现了 Facebook-Connect,并且能够使用 Facebook 工具包检索用户信息。但我无法成功注销。 当我按下 facebook-Logout 按钮时(登录时会自动出现,因为我使用的是 autologoutlink-property)

<fb:login-button autologoutlink="true"></fb:login-button>

我仍然拥有全部五个 Facebook-Cookie: 我的 ApiKey MyApiKey_ss MyApiKey_SessionKey MyApiKey_expires 我的ApiKey_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();
}

首先我不明白为什么即使我不再登录,我仍然可以检索用户信息,其次:我如何删除这些 Cookie。以下代码不起作用:

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

【问题讨论】:

    标签: asp.net-mvc facebook cookies


    【解决方案1】:

    这可能是在黑暗中拍摄,但您是否确保将 fb.init 放置在结束 body 标记之前?

    <script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US"></script>
        <script type="text/javascript">FB.init('somekey');</script>
    

    这之前给我带来了麻烦。

    【讨论】:

      猜你喜欢
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 2012-01-20
      • 2012-07-06
      • 2019-11-13
      相关资源
      最近更新 更多