Msal.net PublicClientApplicationBuilder AcquireTokenInteractive, как открыть в той же вкладке браузера?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Msal.net PublicClientApplicationBuilder AcquireTokenInteractive, как открыть в той же вкладке браузера?

Сообщение Anonymous »

Я использую библиотеку MSAL.Net Microsoft.Identity.Client для получения разрешения на чтение почтового ящика пользователя.
Поэтому я создаю PublicClientApplication например:

Код: Выделить всё

            pca = PublicClientApplicationBuilder
.Create(clientId)
.WithRedirectUri("http://localhost")
.Build();
и после этого я запускаю команду AcquireTokenInteractive:

Код: Выделить всё

                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();
Происходит следующее: открывается новая вкладка браузера, предоставляющая пользователю запрос на вход в систему Microsoft.
После этого исходное окно перенаправляется на страницу успеха, а окно/вкладка, используемая для аутентификации, устаревает с неприятным сообщением об ошибке: «Этот сайт недоступен
localhost отказался подключиться» .'
Изображение

У меня возникли следующие проблемы:
  • Есть ли способ, чтобы аутентификация происходила на той же вкладке/окне, из которой вызывается AcquireTokenInteractive?
  • Если нет, то как мне решить проблему с отображением сообщения «Этот сайт недоступен»? Невозможно заставить действие контроллера прослушивать Uri перенаправления или настроить HttpListener для определенного порта, так как тогда я получаю следующее исключение: >/li>
HttpListenerException:
Не удалось прослушать префикс «http://localhost:8017/», поскольку он
конфликтует с существующая регистрация на компьютере.

Другими словами: я не могу перехватить вызов перенаправления, чтобы корректно обработать ответ.
< ol start="3">
Отказ от указания Uri перенаправления также невозможен, поскольку это приведет к тому, что другое исключение вообще не попадет на экран аутентификации.
< li>Это подводит меня к вопросу: зачем вообще нам нужен Uri перенаправления? Так как результаты авторизации уже получены из AcquireTokenInteractive?

Что мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -open-in-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»