Как полностью выйти из системы пользователя с помощью приглашения Oauth?

#c# #botframework #bots

#c# #botframework #боты

Вопрос:

Я следил за примером запроса Oauth Oauth. Он отлично работает, когда я правильно вхожу в систему и получаю токен. Однако я работаю над вариантом использования, когда пользователь входит в систему, используя неправильные учетные данные. Я использую await botAdapter.SignOutUserAsync(innerDc.Context, ConnectionName, null, cancellationToken); для выхода пользователя, и это работает, поскольку Oauth снова запрашивается. Однако, когда пользователь снова нажимает кнопку входа, он снова вводит неправильные учетные данные (т.Е. Те же учетные данные, что и при входе в систему, из-за кэша браузера) и не позволяет пользователю использовать другую учетную запись. Я хочу корректно выйти из системы, чтобы он мог выбрать другую учетную запись для входа. Я понимаю, что если я добавлю это к нужному клиенту (добавьте моего бота в правильный идентификатор AD), это не позволит даже получить неверный адрес электронной почты / учетные данные, но это то, над чем я должен поработать сейчас. Я не знаю, предназначено ли это, но выход только уничтожает токен, не выводит вас из Microsoft online. Спасибо

Ответ №1:

Учитывая, что SignOutUserAsync метод только подписывает пользователя с сервера токенов, я предполагаю, что вам нужно будет реализовать пользовательский метод для обработки полного выхода. В этом документе обсуждается отправка запроса на выход и должно служить руководством по настройке. Если это не идеальное совпадение, другие варианты перечислены в дереве меню.

Вместо того, чтобы полагаться на SignOutUserAsync метод, вы бы реализовали эту функцию вместо него.

Комментарии:

1. Да, я подумал, что это не позволит вам выйти из Microsoft identity platform. Просто бот, поэтому, если вы снова войдете в систему, вы просто попадете прямо к боту. Я только что создал дополнительное событие при нажатии кнопки выхода, которое будет зафиксировано при прямых входящих действиях и срабатывании login.microsoftonline.com/common/oauth2 / … используя документацию по выходу из IDP после того, как я ничего не получал непосредственно от бота. Спасибо за вашу помощь.