HttpListener продолжает ждать вечно, если локальное соединение закрыто из браузера - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь интегрировать Google Auth в собственное настольное приложение, используя петлевой подход, ссылаясь на Google OAuthDesktopApp . Проблема, с которой я сталкиваюсь, заключается в том, что httplistner продолжает ждать вечно, если пользователь закрыл вкладку в браузере. Есть ли способ, которым слушатель может перезвонить, если у пользователя есть закрытая вкладка браузера? или любой другой подход, который помогает мне преодолеть эту тупиковую ситуацию.

1 Ответ

0 голосов
/ 04 февраля 2020

Вы можете рассмотреть возможность создания новой формы с использованием компонента 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 он обычно достаточно хорош.

...