我目前正在尝试将 OAuth 2.0 用户代理流程与客户端 C# 应用程序一起使用,并且遇到了与重定向 URI 相关的一些困惑。
因为我正在使用客户端应用程序,所以我无法向 Web 服务器提供标准重定向 URL。但是,根据我尝试进行身份验证的人员(在本例中为 Salesforce),用户代理流程是用于客户端应用程序的正确流程。
我的问题是,在这种情况下我能做些什么来捕获访问令牌?显然我可以创建一个“客户端可访问的本地资源”,但我不熟悉这背后的机制,而且我找不到关于该主题的任何资源(部分原因是我不知道该寻找什么)。
任何关于我应该从哪里开始寻找的指针将不胜感激。
编辑:更多挖掘揭示了以下stackoverflow问题:
我正在对他们的建议进行更多调查,但任何其他建议也很好。
编辑:更多搜索揭示了这篇文章:
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 服务是否可以将令牌“提供”给我的应用程序?即,控制点应该在哪里?