如果从浏览器关闭localhost连接,则HttpListener会永远等待

时间:2020-02-04 13:22:33

标签: c# google-oauth httplistener

我正在尝试通过引用Google OAuthDesktopApp使用环回方法将Google Auth集成到本地桌面应用程序中。我遇到的问题是,如果用户已关闭浏览器中的选项卡,则httplistner会一直等待。如果用户具有关闭的浏览器选项卡,侦听器可以通过哪种方式回叫?或其他任何可以帮助我克服这种僵局的方法。

1 个答案:

答案 0 :(得分:0)

您可以考虑使用WebBrowser组件创建新表单:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.webbrowser?view=netframework-4.8

或者如果您正在WPF中进行操作:https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.webbrowser?view=netframework-4.8

采用这种方法时,我通常要做的是创建一个带有停靠的WebBrowser的新表单,这不仅使我能够检测到窗口是否关闭,而且当供应商愿意时,我还可以捕获这些实例中的重定向。不允许自定义重定向URI。

这种方法的最大缺点是内置的浏览器非常糟糕。但是,对于简单的OAuth流,通常就足够了。