【问题标题】:DotNetOpenAuth - request access token immediatelyDotNetOpenAuth - 立即请求访问令牌
【发布时间】:2011-06-04 21:36:46
【问题描述】:

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

这里先做一个小概述

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

现在 - 这是我的问题

据我所知 - DotNetOpenAuth 似乎不包含跳过授权过程中的前几个请求并直接进入请求以获取访问令牌的方法。现在,显然,我可以构建自己的 HttpWebRequest 来获取它,但我希望不必这样做,因为 DotNetOpenAuth 隐藏了所有混乱的 Authorization 标头内容。那么,任何人都知道通过 DotNetOpenAuth 跳到访问令牌步骤的任何方法吗?

我尝试调用WebConsumer.Send(PrepareRequestUserAuthorization()),但这似乎从一开始就开始了 OAuth 授权。我也尝试调用WebConsumer.ProcessUserAuthorization(),但这只是返回null。而且,坦率地说,围绕 DotNetOpenAuth 的文档对于这个新手来说不够具体,无法确定这些方法到底应该做什么。因此,任何帮助将不胜感激。

【问题讨论】:

    标签: c# dotnetopenauth


    【解决方案1】:

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

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

    此外,您需要人为地将请求令牌及其密钥注入您在WebConsumer.TokenManager 中的令牌管理器实例中。这也可能不是微不足道的,具体取决于您的实施方式。

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

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2019-03-10
      • 1970-01-01
      • 2011-09-19
      • 2013-02-17
      • 2020-07-05
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多