Учетная запись не найдена после перезапуска: учетная запись или подсказка входа не были переданы вызову AcquireTokenSilent - PullRequest
1 голос
/ 04 марта 2020

У меня есть веб-приложение, которое должно отправить токен B2 C Bearer в API для получения авторизации. Я достигаю этого с помощью MSAL, все прекрасно работает, пока я не перезапущу веб-приложение, и как только я перезапускаю веб-приложение (без выхода из системы), кажется, что заявки B2 C все еще обнаруживаются приложением и пользователь все еще зарегистрирован , но IConfidentialClientApplication не может использовать GetAccountAsyn c (), так как не найдена учетная запись .

Ошибка, которую я получаю: { «Никакая учетная запись или подсказка для входа не были переданы вызову AcquireTokenSilent.»}

Проблема решается, если пользователь выходит из системы. Это происходит на локальном хосте, а также, если приложение опубликовано с Azure, и я перезапускаю службу приложения.

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вы можете создать фильтр исключений, чтобы обрабатывать это автоматически. Один из примеров: AuthorizeForScopeSttribute class .

Пользователь не может выйти из системы, но кэш токена будет инициализирован.

0 голосов
/ 05 марта 2020

Как пояснил juunas в комментарии, MSAL по умолчанию использует в кэше токенов памяти .

Как только клиент войдет в систему, информация аутентификации будет сохранена в cook ie (если cook ie не отключен). Даже если ваше веб-приложение перезагружается, клиент будет оставаться в системе.

Однако, поскольку используется кэш-память, все кешированные элементы будут очищены при перезапуске приложения. Чтобы решить эту проблему, вы можете настроить сериализацию кэша токенов в MSAL. NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...