.net 以前授权站点的DotNetOpenAuth

.net 以前授权站点的DotNetOpenAuth,.net,oauth,dotnetopenauth,.net,Oauth,Dotnetopenauth,我很幸运使用DotNetOpenAuth进行了三腿授权。目前,我正在连接并拉入一些谷歌数据 我的问题是,显然,如果你已经将我的web应用程序授权到你的Google帐户,当我打电话给你的时候 var accessTokenResponse = google.ProcessUserAuthorization(); 它基本上什么也不做。如何为已对我的应用程序进行身份验证的帐户获取令牌?我看不到任何形式的回调 这是因为我对OAuth的无知。您必须用自己的IConsumerTokenManager实现替

我很幸运使用DotNetOpenAuth进行了三腿授权。目前,我正在连接并拉入一些谷歌数据

我的问题是,显然,如果你已经将我的web应用程序授权到你的Google帐户,当我打电话给你的时候

var accessTokenResponse = google.ProcessUserAuthorization();
它基本上什么也不做。如何为已对我的应用程序进行身份验证的帐户获取令牌?我看不到任何形式的回调


这是因为我对OAuth的无知。

您必须用自己的
IConsumerTokenManager
实现替换DotNetOpenAuth中包含的示例
InMemoryTokenManager
,该实现将访问令牌和机密存储在数据库中。然后将该接口的实例传递给
WebConsumer
类,它将接收所有传入的令牌和机密

调用
ProcessUserAuthorization
或在token manager类中时,还必须将保存的访问令牌与当前登录到网站的用户的用户帐户相关联


然后,当用户下次访问您的站点时,您在数据库中查找他们的用户帐户以获取他们的访问令牌。您可以将其用于将来的请求。您的
IConsumerTokenManager
将根据需要提供相关的令牌密钥,并且使用寿命将很好。

不要ping旧线程,但我没有意识到InMemoryTokenManager是要替换的示例。这也许可以解释我自己在OAuth实现令牌秘密时的一些困惑。谢谢在memorytokenmanager示例中有一个简单的鸡蛋,如果它是从示例中提取并在其他地方使用的,那么它应该故意破坏构建,并且错误地告诉您构建自己的构建。这在你的情况下不起作用吗,@JHubSharp?不。事实上,当SimpleConsumerTokenManager崩溃时,它对我很有效,因为它无法保留访问令牌秘密。如果您能对我的问题提供一些见解,我将不胜感激: