我目前正在尝试与客户端C#应用程序一起使用OAuth 2.0用户代理流程,我遇到了一些与重定向URI有关的混淆。OAuth用户代理流程与C#桌面应用程序
因为我正在使用客户端应用程序,所以我无法向Web服务器提供标准重定向URL。但是,根据我试图认证的人员(Salesforce,在这种情况下),User-Agent Flow是用于客户端应用程序的正确方法。
我的问题是,在这种情况下我能做些什么来获取访问令牌?显然,我可以创建一个“本地资源可以访问客户端”,但我不熟悉这个背后的机制,并且我无法找到关于该主题的任何资源(部分原因是我不知道要寻找什么)。
任何指针,我应该从哪里开始寻找将不胜感激。
编辑:一些更多的挖掘已经显露出以下计算器问题:
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服务器的响应,并让我的应用程序作出适当的响应。更多更新来。
Ooookay。因此,从我能够收集的信息中,我需要设置一个本地Web服务来提供OAuth回调。我需要自己聆听上述Web服务,并将回调传递给我的应用程序。但是,VS2010提供的默认ASP.NET Web服务不支持URL参数,只是API调用,所以我显然需要使用WCF Rest入门套件。
我对这一切都是完全陌生的,所以任何提示在这一点上都是天赐之物。一般来说,我在考虑设置本地WCF Rest服务,将该本地URI作为回调提供给OAuth,然后使用Rest服务捕获回调URL。然后我解析URL并提取访问令牌。此时,我的应用程序是否请求访问令牌,或者我的Web服务是否可以将令牌“授予”我的应用程序?也就是说,控制的位置应该在哪里?
这将是一个选项。但要小心:用户可以在Web浏览器中使用一些技巧,例如在浏览器历史记录,页面刷新,超时,网络中断等方面前进和后退。你将不得不处理所有的HTTP错误代码+所有嵌入式浏览器令人讨厌的技巧。祝你好运:) –
另外考虑你的应用程序的用户界面,这可能与Salesforce提出的用户界面不同 - 并且你无法更改默认值,因为你无法控制它。 –
呃,你说得对。接下来我将不得不看看嵌入式浏览器安全。就用户界面而言,我的应用程序是一个后台进程,可以在某些事件上生成一个弹出窗口,因此每次启动应用程序时都只需要一次验证(通常每天一次,早上)。感谢您的提示,但我忘记了可能会被嵌入式IE实例打开的安全漏洞。 – sichinumi