【问题标题】:Redirect back to wpf app from Third party website从第三方网站重定向回 wpf 应用程序
【发布时间】:2021-03-08 14:26:19
【问题描述】:

我有 Wpf 桌面应用程序,我从中将用户重定向到登录到第三方网站(使用两步身份验证)。用户登录第三方网站后,将唯一代码返回到提到的回调 url。假设回调 url 是任何 api 调用,它会将代码返回给该 api 调用。

但在我的例子中,网站是通过使用 Process.Start("thirdparty url") 从 wpf 应用程序调用的。有什么办法可以让第三方网站将唯一代码返回给 wpf 应用程序?基本上我需要提供第三方,一个我可以在 wpf 应用程序中检测到的回调 uri。

我不确定我要问的内容在 wpf 中是否可行。如果我有任何网站,这两个步骤的身份验证会容易得多,但不确定如何在 wpf 中进行。

Xero(第三方)在此处提供了通过使用 httpListener 来执行此操作,但它不起作用

帮助!

【问题讨论】:

  • 您需要自定义协议处理程序。有关详细信息,请参阅此stackoverflow.com/questions/35626050/… 和此docs.microsoft.com/en-us/previous-versions/windows/…
  • @Serg 如果我错了,请纠正我,但此参考是为了启动 wpf 应用程序对吗?在我的情况下,它已经在运行我只需要在我的应用程序中调用此回调时执行特定代码
  • 是的,URL 处理程序只会运行指定的应用程序并将参数传递给它。如果您需要将参数传递给已经运行的实例,则需要使用某种 IPC(套接字、管道、WM_COPY、COM 等)手动执行此操作。

标签: c# wpf oauth-2.0 xero


【解决方案1】:

我能找到的最好方法是在 wpf 应用程序中使用 Web 浏览器控件。有很多浏览器控件可用于 wpf。我使用了 cefsharp chromium 浏览器,它可以将用户重定向到特定的 url,并且它具有帧加载结束事件,当第三方重定向回指定的 url 时会调用该事件。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2014-10-27
    • 2018-07-24
    • 2020-05-17
    • 1970-01-01
    • 2021-09-21
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多