【发布时间】:2011-11-29 14:30:10
【问题描述】:
所以,简单的问题:
在用户授权我的应用 (OAuth 2.0) 后,我调用 Facebook Graph API 以获取他们的详细信息。
所以此时,我有他们的 Facebook ID、API 调用的访问令牌、他们的电子邮件和其他一些基本信息。
我正在开发一个 ASP.NET MVC 3 Web 应用程序,它使用表单身份验证和自定义票证来存储额外数据。
我见过的很多例子都显示了将信息存储在 Session 中。
这是明智的吗?因为我正在进行单点登录(例如,用户可以使用 Facebook Connect“登录”我的网站),所以我只有在他们已经登录到我的网站时才真正“关心”他们的 Facebook 信息。
考虑到这一点 - 我想知道是否值得在不同的持久性机制中分离信息。
例如,由于 Facebook ID 没有更改,我可以将其存储在表单身份验证票证中,并且可能将访问令牌存储在 cookie 中,并将到期时间设置为 HTTP 响应中收到的到期时间。
人们如何在 ASP.NET(MVC - 但不限于)应用程序中存储 Facebook 信息?
【问题讨论】:
-
我现在面临着类似的问题。目前,我正在获取 Facebook 用户名(或电子邮件)并设置 FormsAuthentication.SetAuthCookie(username, true);用户名来自 Facebook。我现在想弄清楚的问题是,如果我已经有一个具有相同用户名的成员(通过 Forms Auth)会发生什么。
-
@Derek - 我使用系统的用户名作为 cookie,我目前正在使用自定义主体。所以我正在考虑将 Facebook ID 存储在主体中,并将访问令牌存储在 cookie 中。其余的东西(facebook 用户详细信息)可以存储在数据库中,因为我不需要在每个 HTTP 请求上都使用它。
标签: asp.net asp.net-mvc session facebook single-sign-on