2011-05-29 167 views
0

好吧 - 我是一个DotNetOpenAuth newb,只是为了避免这种情况。DotNetOpenAuth - 立即请求访问令牌

这里有一个小的概述第一

我建立一个应用程序,这将是另一个应用程序的OAuth用户端。这其他应用程序有他们所说的“应用程序市场”,用户登录到他们的网站可以直接启动消费者网站。这个市场将包含一个链接到我们的应用程序 - 当点击时已经包含请求令牌和请求令牌密码。有了这个说法,我们显然不需要让OAuth请求获取请求令牌等,因为我们已经拥有它了。

现在 - 在这里是我的问题

从我可以告诉 - DotNetOpenAuth似乎并没有包含的方式来跳过第一对夫妇在授权过程的请求,并直接请求获得访问令牌。现在,显然,我可以建立自己的HttpWebRequest来获取它,但是我希望不必这样做,因为DotNetOpenAuth隐藏了所有那些凌乱的授权标题内容。那么,任何人都知道有什么方法可以跳过DotNetOpenAuth的访问令牌步骤?

我试过打电话WebConsumer.Send(PrepareRequestUserAuthorization()),但似乎从一开始就开始了OAuth授权。我也试过拨打WebConsumer.ProcessUserAuthorization(),但那只是返回null。而且,坦率地说,围绕DotNetOpenAuth的文档对于这个newb来说还不够具体,无法确定这些方法究竟应该做什么。所以,任何帮助将不胜感激。

回答

3

这个应用程序市场提出的是而不是标准OAuth 1.0(a),因此不是DotNetOpenAuth支持的东西。也就是说,你可以使用一些技巧来使它工作。用精心设计的参数调用WebConsumer.ProcessUserAuthorization(HttpRequestInfo)将会“愚弄”DotNetOpenAuth,从这个应用市场离开你的角度开始。您将需要工艺的HttpRequestInfo对象,它包含所有将被包含在一个正常的OAuth流时请求令牌已被授权的消息部分:

  1. 的oauth_token
  2. oauth_verifier(如果这是一个OAuth 1.0a流程)

此外,您需要人工将请求令牌及其秘密注入您的令牌管理器实例WebConsumer.TokenManager。这也可能不是微不足道的,这取决于你如何实施它。

虽然我会提醒你的是,无论何时离开标准OAuth流程,彻底的安全评估都是至关重要的,因为你可能会破坏协议中内置的安全机制。