【发布时间】:2012-06-05 19:10:18
【问题描述】:
我目前正在尝试将 OAuth 2.0 用户代理流程与客户端 C# 应用程序一起使用,但我遇到了一些与重定向 URI 相关的困惑。
因为我正在使用客户端应用程序,所以我无法向 Web 服务器提供标准重定向 URL。但是,根据我尝试进行身份验证的人员(在本例中为 Salesforce),用户代理流程是用于客户端应用程序的正确流程。
我的问题是,在这种情况下我该怎么做才能捕获访问令牌?显然我可以创建一个“客户端可访问的本地资源”,但我不熟悉这背后的机制,而且我找不到关于该主题的任何资源(部分原因是我不知道该寻找什么)。
任何关于我应该从哪里开始寻找的指针将不胜感激。
编辑:更多挖掘揭示了以下stackoverflow问题:
How do I develop against OAuth locally?
我正在对他们的建议进行更多调查,但任何其他建议也很好。
编辑:更多搜索显示这篇文章:
http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html
仍然觉得我在黑暗中四处闲逛,不了解大局,但我相信我需要使用 localhost 设置本地 Web 服务并将我的重定向 URI 指向那里。然后,我将使用我的 Web 服务来解开来自 OAuth 服务器的响应,并让我的应用程序做出适当的响应。更多更新即将到来。
哎呀。因此,根据我收集到的信息,我需要设置一个本地 Web 服务作为 OAuth 的回调。我需要自己收听所述网络服务并捕获回调以将其传递给我的应用程序。但是VS2010默认提供的ASP.NET Web服务不支持URL参数,只支持API调用,所以我显然需要改用WCF Rest starter kit。
我对这一切完全陌生,所以在这一点上任何提示都是天赐之物。一般来说,我想我设置了一个本地 WCF Rest 服务,将该本地 URI 作为回调提供给 OAuth,然后使用 Rest 服务捕获回调 URL。然后我解析 URL 并提取访问令牌。此时,我的应用程序是否请求访问令牌,或者我的 Web 服务是否可以将令牌“提供”给我的应用程序?即,控制点应该在哪里?
【问题讨论】:
标签: c# authentication oauth oauth-2.0