DotNetOpenAuth - 立即请求访问令牌

时间:2011-05-29 18:54:42

标签: c# dotnetopenauth

好的 - 我是一个DotNetOpenAuth newb,只是为了解决这个问题。

首先是一些概述

我正在构建一个应用程序,该应用程序将成为另一个应用程序的OAuth使用者。此其他应用程序具有所谓的“应用市场”,登录其网站的用户可以直接启动消费者网站。此市场将包含指向我们应用的链接 - 点击时将包含请求令牌和请求令牌密钥。话虽如此,我们显然不必使OAuth请求获取请求令牌等,因为我们已经拥有它。

现在 - 这是我的问题

据我所知 - DotNetOpenAuth似乎没有办法在授权过程中跳过前几个请求,直接转到获取访问令牌的请求。现在,显然,我可以构建自己的HttpWebRequest来获取它,但我希望不必这样做,因为DotNetOpenAuth隐藏了所有那些凌乱的授权头文件。那么,任何人都知道如何通过DotNetOpenAuth跳转到访问令牌步骤?

我尝试拨打WebConsumer.Send(PrepareRequestUserAuthorization()),但这似乎从一开始就启动了OAuth授权。我也试过调用WebConsumer.ProcessUserAuthorization(),但只返回null。而且,坦率地说,围绕DotNetOpenAuth的文档对于这个newb来说还不够具体,无法确定这些方法到底应该做什么。所以,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

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

  1. 组oauth_token
  2. oauth_verifier(如果这是OAuth 1.0a流程)
  3. 此外,您需要在WebConsumer.TokenManager中人工将请求令牌及其秘密注入您的令牌管理器实例中。这也可能不是微不足道的,取决于你如何实现它。

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