【发布时间】:2011-06-23 12:50:41
【问题描述】:
我已经尝试了几个小时来让 OAuth 与我正在开发的 API 一起工作,显然我的方法一定是错误的,因为我经常遇到死胡同。
我得到了什么:
- 在 .NET MVC 中实现的 API,以 XML 或 JSON 形式返回数据结果。
- 它需要 API 密钥才能使用 API。
- 一个网站 (X) 作为管理 API 密钥的后端。
- 另一个网站 (Y),其中包含该 API 从中提取数据的大量数据。
我应该得到什么:
- 允许 API 密钥从网站 (Y) 访问用户数据的能力,如果他们自己通过 OAuth (1.0A) 允许的话。
我尝试过的:
- 到目前为止,我的方法是使用 DotNetOpenAuth 库,但它几乎都是关于如何实现 OpenId,OAuth 命名空间中的一些类甚至似乎硬编码为 OpenId 功能。所以我一直在尝试查看使用 OpenId 的示例中发生了什么,看看我是否可以使用其中的一部分来实现没有 OpenId 的 OAuth。
- 在服务器端,各种方法包括读取“UnauthorizedTokenRequest”并通过调用 ServiceProvider.Channel.PrepareResponse(unauthorizedTokenRequest).AsActionResult() 将其返回,出于某种原因,它会尝试将 nonce 和 timestamp 两个值添加到崩溃的响应,并跳过它,它仍然返回我无法在客户端读取的响应。
所以我想,我的问题真的是:
- 是否有指南/文档告诉您我应该在服务器端使用 DotNetOpenAuth 库的哪些部分,以及在此过程中应该在什么时候使用它们,以便在未硬编码的 MVC 服务器上实现 OAuth到 OpenId,因为这两个网站(X 和 Y)都不支持 OpenId?
- 如果我不打算使用 OpenId,我是否应该使用另一个库,因为 DotNetOpenAuth 似乎最关注的是?
- 非常欢迎任何其他更适合我需要的方法。
提前感谢您!
- 约翰尼,丹麦
【问题讨论】:
-
有人对此有什么好的建议吗?我很难相信我是唯一一个尝试在没有 OpenID 的情况下实现 OAuth 的人。 :)
标签: asp.net-mvc api oauth dotnetopenauth