Поэтому я создаю PublicClientApplication например:
Код: Выделить всё
pca = PublicClientApplicationBuilder
.Create(clientId)
.WithRedirectUri("http://localhost")
.Build();
Код: Выделить всё
var result = await pca.AcquireTokenInteractive(scopes)
.WithSystemWebViewOptions(new SystemWebViewOptions
{
HtmlMessageError = "
An error occurred: {0}. Details {1}
",
BrowserRedirectSuccess = new Uri("https://www.my_auth_success_page.com")
})
.WithUseEmbeddedWebView(false)
.ExecuteAsync();
После этого исходное окно перенаправляется на страницу успеха, а окно/вкладка, используемая для аутентификации, устаревает с неприятным сообщением об ошибке: «Этот сайт недоступен
localhost отказался подключиться» .'

У меня следующие проблемы:
- Есть ли способ, чтобы аутентификация происходила на той же вкладке/окне, из которой вызывается AcquireTokenInteractive?
- Если нет, то как это сделать? Я преодолел проблему демонстрации того, что «Этот сайт не может быть дошло' сообщение? Невозможно заставить действие контроллера прослушивать Uri перенаправления или настроить HttpListener для определенного порта, так как тогда я получаю следующее исключение: >/li>
Не удалось прослушать префикс «http://localhost:8017/», поскольку он
конфликтует с существующая регистрация на машине.
Другими словами: я не могу перехватить вызов перенаправления, чтобы корректно обработать ответ.
- Отказ от указания Uri перенаправления также невозможен, поскольку это приведет к тому, что другое исключение вообще не попадет на экран аутентификации.
- Это подводит меня к вопросу: зачем нам нужен Uri перенаправления на все? Так как результаты авторизации уже получены из AcquireTokenInteractive?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -open-in-s