如何调试访问 OAuth 安全 API 的 ASP.Net 应用程序?

Lin*_*say 5 asp.net authentication debugging oauth callback

我知道必须有一个明显的解决方案来解决这个问题,但我很想念它,所以我非常感谢有人启发我,这样我就不会转动我的轮子......

我正在编写一个 ASP.Net 应用程序,它将与服务 API(特别是 Evernote)进行交互。Evernote 需要 OAuth 以确保安全性,在我实际与对象交互之前,我需要获取令牌。

工作流程是这样的(和其他人一样向自己解释!):

  1. 使用我的开发 api 密钥和秘密密钥以及其他一些 OAuth 内容构建一个 url,将其发送到 Evernote 以请求访问令牌。
  2. 将 URL 作为请求发送到 Evernote 并从响应中提取新的访问令牌
  3. 使用访问令牌构建另一个 url 以请求用户的身份验证令牌。这个 url 转到用户必须与之交互才能登录的页面(如果他们还没有),然后授权我的应用程序访问他们的帐户。我构建的 url 的最后一个参数是一个回调 url,它将从 Evernote 的服务器调用。
  4. 如果一切顺利,Evernote 将请求回调 url 并将新的身份验证令牌作为参数包含在内。
  5. 一旦我的服务器收到带有嵌入式令牌的回调,我就可以使用它,以便我的应用程序可以与用户对后续请求的注释进行交互。

问题是我正在本地机器上编写这个应用程序,而不是公共域下的 ISP。所以我的回调是到本地主机服务器。当然,localhost 是相对的,所以印象笔记无法解析我的回调......我无法同时接收身份验证令牌和调试。

必须有办法解决这个问题,因为这种身份验证模型并不是 Evernote 独有的(从长远来看……Flickr 像许多其他服务一样使用它)。那么有人可以告诉我如何设置以便我可以获得身份验证令牌并且仍然能够在我的本地机器上进行调试吗?

非常感谢帮助!

Jiv*_*iov 2

OAuth 实施起来相当困难。这可能不是您正在寻找的答案,但这就是我完成工作的方式:

  1. 在我的本地开发机器上编写一些代码。
  2. 运行一个 bat 文件(或者在 VS 中挂钩一个构建后事件),该文件执行 msbuild 部署脚本并将应用程序部署到测试服务器。
  3. 在测试服务器上运行应用程序。获取请求令牌并请求授权后,它会重定向到 Evernote 网站。
  4. 成功授权后,Evernote 网站重定向回我的测试服务器,授权的请求令牌将交换为访问令牌。
  5. 我没有进行调试(我在测试服务器上没有 VS),而是检查应用程序的日志(我使用的日志记录就像写入文本文件一样简单)。
  6. 冲洗并重复

为了测试的目的,我注册了一个临时公共子域(例如testing.oauth.mydomain.com),以便Evernote 能够重定向到该URL。