asp.net-mvc - 使用 DotNetOpenAuth 从 Google 帐户同时获取联系人和日历

标签 asp.net-mvc c#-4.0 dotnetopenauth

我正在使用 ASP.NET MVC3 (C#) 编写网络应用程序,我需要从我登录用户的 Google 帐户获取日历和联系人。

因为我不想存储用户的凭据,所以我正在使用 OAuth(但不使用 OpenID - 我不希望我的用户使用他们的 Google 帐户登录)。

我有以下代码来获取访问 token 并稍后使用它来获取数据:

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 方法不允许我设置多个应用程序。

如何在不需要针对不同范围使用多个不同 token 的情况下做到这一点? (一个用于日历,一个用于通讯录等)

最佳答案

GoogleConsumer 类在 DotNetOpenAuth.ApplicationBlock 项目中作为源代码提供给您。请随时对其进行修改,使其满足您的需要。

关于asp.net-mvc - 使用 DotNetOpenAuth 从 Google 帐户同时获取联系人和日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681819/

相关文章:

c# - 取消 ContinueWith 任务链并向调用者报告错误

wpf - 如何更改 TreeView 的视觉效果以自动显示 SelectedItem?

asp.net-membership - 如何使用 Microsoft.Web.WebPages.OAuth 更改范围/权限

c# - OAuth 与 DotNetOpenAuth?

jquery - Ajax 授权失败

c# - 在 MVC Controller 之外使用 Controller.Content c#

asp.net-mvc - 如何防止某些内部路由被用户访问?

c# - WCF ObjectDisposedException 安全句柄已发布/ASP.NET MVC3 客户端/线程

winforms - 如何在 Winforms 应用程序中使标签文本可缩放

asp.net-mvc-3 - DotNetOpenAuth; AsActionResult 不起作用