我正在使用Facebook来验证我网站上的用户。我需要在使用C#从服务器端注销时删除facebook cookie。你能告诉我怎么做吗?经过测试和运作的例子
答案 0 :(得分:2)
假设您知道cookie的名称,您可以将其过期日期设置为过去的某个时间。当浏览器收到cookie时,它会看到它已过期并将其删除。
如果您使用的是System.Web.HttpCookieCollection
,this MSDN article的示例代码可以证明这一点(示例改编自MSDN上的代码):
if (Request.Cookies["NameOfFacebookCookie"] != null) {
HttpCookie myCookie = new HttpCookie("NameOfFacebookCookie");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
由于您通过Facebook验证用户,我假设您正在使用OAuth。在这种情况下,您不知道cookie的名称,并且在任何情况下它都不是您的cookie,它是由facebook.com在登录过程中设置的。要注销通过Facebook登录的用户,请参阅this answer。
答案 1 :(得分:0)
我不明白为什么我不能“评论”何时,无论如何;为了增加上述阿列克谢和卡梅隆之间的讨论,我们假设cookie是由Facebook控制的。如果您使用的是Javascript SDK,那么是的,Cameron的评论是真的。但是,如果您创建了一个手动登录流程(没有SDK),以便您可以在服务器端处理登录,那么您可能创建了自己的cookie来保存检索到的access_token,当然,您可以删除它。