【发布时间】:2011-07-13 15:54:06
【问题描述】:
我正在使用 ASP.NET MVC3 (C#) 编写一个 Web 应用程序,我需要从我登录用户的 Google 帐户中获取日历和联系人。
因为我不想存储用户的凭据,所以我使用 OAuth(但不使用 OpenID - 我不希望我的用户使用他们的 Google 帐户登录)。
我有以下代码来获取访问令牌,然后用它来获取数据:
var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager);
// Is Google calling back with authorization?
var accessTokenResponse = google.ProcessUserAuthorization();
if (accessTokenResponse != null) {
this.AccessToken = accessTokenResponse.AccessToken;
//SAVE ACCESS TOKEN TO DATABASE
} else if (this.AccessToken == null) {
// If we don't yet have access, immediately request it.
GoogleConsumer.RequestAuthorization(google, GoogleConsumer.Applications.Contacts);
}
很遗憾,如您所见,我只是为联系人请求授权,而RequestAuthorization 方法不允许我设置多个应用程序。
如何在不需要针对不同范围的多个不同令牌的情况下做到这一点? (一个用于日历,一个用于联系人等)
【问题讨论】:
标签: asp.net-mvc c#-4.0 dotnetopenauth