如何在 WinForms 应用程序中使用 Salesforce OAuth 2.0 隐式流身份验证?

2023-12-03

我编写了一个 Web 应用程序,它使用 OAuth 2.0 Web 服务器流连接到 Salesforce API,一切正常。

但现在需要从 WinForms 桌面应用程序访问 Salesforce API,我陷入了困境。 Salesforce 建议对桌面应用程序使用用户代理或隐式流程。

Salesforce 在此处描述了该流程 -

我创建了一个 WinForms 应用程序并使用 CefSharp 库嵌入浏览器。我可以使用本文中显示的 URL 语法在嵌入式浏览器中打开网页,例如

客户端_id=CLIENT_ID&redirect_uri=重定向_URI

但我不知道从这里该去哪里。

我猜测重定向 URI 必须是公共端点,但是 Salesforce 返回到 URI 的令牌如何找到返回到我的桌面应用程序的方式,以便可以在 WebRequests 的标头中使用它来访问 API。

我将不胜感激任何帮助、指示、示例代码等。

Thanks.


重定向 uri 不必是公开的。有可能localhost:somePort并且您的应用程序必须侦听该端口上的流量。

例如,如果您想使用 SFDX CLI + Visual Studio Code 开发 SF 代码 - 有一种很好的方法来授权访问 SF org,您可以在网站上输入凭据,但当一切正常时 - OAuth 片段将发送到localhost:1717。只要没有其他东西在监听这个端口就可以了。与 Salesforce Data Loader 类似 - 您可以输入用户名并传递给它,但它也有这个基于 Web 的流程。有时,如果您的 SF 管理员启用了针对 Active Directory/Google/Facebook/... 进行身份验证的单点登录,这确实是唯一的选择 - 您可能无法使用 SF 用户名和密码。

我的 C# 时代早已过去,但监听本地计算机上的端口不应该是世界末日吗?您不应该需要与您的应用程序捆绑在一起的成熟的网络服务器......

https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow有一些很好的理论

示例代码?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WinForms 应用程序中使用 Salesforce OAuth 2.0 隐式流身份验证? 的相关文章

随机推荐