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

时间:2008-12-06 22:05:53

标签: asp.net debugging authentication oauth callback

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

我正在编写一个ASP.Net应用程序,它将与服务API(特别是Evernote)进行交互。为了安全起见,Evernote需要OAuth,然后我才能真正与需要获取令牌的对象进行交互。

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

  1. 使用我的开发api密钥和密钥以及其他一些OAuth构建网址,将其发送到Evernote以请求访问令牌。
  2. 将网址作为请求发送给Evernote,并将新的访问令牌拉出响应
  3. 使用访问令牌构建另一个URL以请求用户的身份验证令牌。此网址转到用户必须与之交互以登录的页面(如果尚未登录),然后授权我的应用程序访问其帐户。我构建的url的最后一个参数是一个回调网址,它将从Evernote的服务器调用。
  4. 如果一切顺利,Evernote将请求回调网址并将新的身份验证令牌包含为参数。
  5. 一旦我的服务器收到带有嵌入式令牌的回调,我就可以使用它,以便我的应用程序可以在后续请求中与用户的笔记进行交互。
  6. 问题是我在本地盒子上写这个应用程序,而不是公共领域的ISP。所以我的回调是localhost服务器。当然,localhost是相对的,所以Evernote无法解析我的回调...我无法同时收到身份验证令牌和调试。

    这个问题必须解决这个问题,因为这种身份验证模型并不是Evernote独有的(通过远景... Flickr像许多其他服务一样使用它)。那么有人可以告诉我如何设置,以便我可以获得身份验证令牌,仍然可以在我的本地盒子上调试吗?

    非常感谢帮助!

2 个答案:

答案 0 :(得分:2)

OAuth很难实施。它可能不是您正在寻找的答案,但这就是我设法完成工作的方式:

  1. 在我的本地开发机器上写一些代码。
  2. 运行bat文件(或者在VS中挂钩构建后事件),该文件执行msbuild部署脚本并将应用程序部署到测试服务器。
  3. 在测试服务器上运行该应用程序。获取请求令牌并请求授权后,它会重定向到Evernote网站。
  4. 成功授权后,Evernote网站会重定向回我的测试服务器,并且授权请求令牌会被交换为访问令牌。
  5. 而不是调试(我在测试服务器上没有VS)我检查应用程序的日志(我使用的日志记录就像写入文本文件一样简单。)
  6. 冲洗并重复
  7. 出于测试目的,我注册了一个临时公共子域(例如testing.oauth.mydomain.com),以便Evernote能够重定向到该URL。

答案 1 :(得分:0)

根据此(How do I develop against OAuth locally?),回调由浏览器发出,因此它应该能够命中localhost。