Facebook使用ASP.NET C连接服务器端GetLoginStatus#

时间:2012-03-13 13:44:38

标签: asp.net facebook login facebook-c#-sdk facebook-javascript-sdk

我目前正在使用Facebook Javascript SDK和Facebook C#SDK(用于检索用户图形对象的soley)。

到目前为止,除了以下情况外,所有事情都很顺利:

  • 用户登录Facebook
  • 用户打开一个新的浏览器窗口并访问我的 站点

使用Javascript SDK,我可以使用FB.getLoginStatus方法来确定它们是否已连接(在这种情况下它们就像我以前授权我的网站/应用程序进行Facebook登录一样)。

但是,如果我们处于“连接”状态,我需要能够首次在主页上检测我的站点加载,理想情况是服务器端,如果是,则将一些不同的内容呈现给屏幕(登录vs未登录。)

我目前无法在Facebook C#SDK中看到一个服务器端方法,它使我能够完成相同的FB.getLoginStatus(clientside)。

我应该指出,对用户loginstatus的任何后续更改都是通过订阅auth.authResponseChange事件来处理的,并且所有这些都在那里正常工作,但是当用户第一次点击网站时,页面首次加载是问题。

1 个答案:

答案 0 :(得分:1)

使用任何Facebook SDK都无法在服务器上执行此操作。您必须使用Facebook Javascript SDK检测用户的状态。原因是这些信息存储在cookie中,这些cookie只能由facebook.com读取或者在您的域中,但是由Facebook设置,不应该被您的应用解析。

如果您愿意,可以在您的域上解析cookie,但不建议这样做,因为Facebook认为这些cookie是内部实现细节,并不保证其内容。他们可以随时更改并破坏您的应用。