Используя быстрый запуск aspnetcore 2.1 и Identity Server 4, я настроил токен-сервер с клиентом mvc, чтобы при использовании AuthorizeAttribute он перенаправлялся на экран входа в систему сервера ID4 и после входа перенаправлялся обратно на клиент mvc.
Поскольку мы выполняли рефакторинг старого приложения с пользовательской солью и хэшем в базе данных, я создал пользовательское хранилище пользователя, хранилище ролей и хэш пароля.
Я могу нормально войти, используя
signInManager.PasswordSignInAsync ()
но он не перенаправляет обратно к клиенту, как я ожидал.
Из журнала Fiddler я вижу, что он перенаправляет на / connect / authorize / callback, а затем обратно на страницу входа. В этот момент пользователь явно вошел в систему, потому что имя пользователя появляется с возможностью выхода из системы. Точка останова при входе в систему получает действие и видит, что User.Identity.IsAuthenticated имеет значение true.
Для тестирования я поменял метод входа в систему на метод действия входа в систему из шаблона is4inmem, который использует
HttpContext.SignInAsync (user.SubjectId, user.Username, props)
с этого момента он перенаправляет обратно к клиенту.
Мне не хватает некоторой части пользовательского хранилища, которое _signInManager.PasswordSignInAsync вызывает для регистрации пользователей так же, как HttpContext.SignInAsync?