Членство Перезагрузить, изменить имя пользователя, адрес электронной почты и сбросить пароль
Мы используем identityserver3 и членство перезагрузки для проверки подлинности в нашем приложении.
Теперь у нас есть требование изменить имя пользователя электронной почты и сбросить пароли пользователей из области администратора в нашем приложении. Я видел Identity Manager, но это не то, что я ищу. Из прочтения Wiki о членстве в перезагрузке кажется, что он поддерживает все, что я хотел бы сделать. Я просто понятия не имею, как будет выглядеть реализация для этого.
Я думаю, что мы будем вызывать наш API, где мы знаем, что пользователь аутентифицирован, а затем просто вызывать API MembershipReboot, чтобы позаботиться о текущей задаче, будь то изменение имени пользователя или электронной почты или сброс пароля.
Но, как я уже сказал, я не уверен. Должны ли мы использовать промежуточное ПО Identity Manager? Такое ощущение, что это не ответ, так как мы пишем наш собственный интерфейс администратора, и, насколько я вижу, он не поддерживает сброс пароля по электронной почте, и API MembershipReboot говорит, что это так.
Или мы должны перезвонить на наш сервер идентификации и внести изменения? Похоже, нет, потому что это для входа в приложения.
2 ответа
Да, вам нужно создать свой собственный код, чтобы пользователи могли обновлять свою демографическую информацию, включая электронную почту и пароль.
Вам необходимо использовать UserAccountService -> Этот код, который я использую в своем собственном CustomUser, где я храню всю информацию, которая обычно хранится в таблице UserAccount.
_userAccountService = new UserAccountService<CustomUser>(new CustomUserRepository(new CustomDatabase()));
Тогда используйте:
_userAccountService.ChangeEmailRequest();
_userAccountService.ChangeUsername();
_userAccountService.ChangePassword();
Если вы предпочитаете, чтобы пользователи делали это по электронной почте (используйте, когда они не вошли в систему)
_userAccountService.ChangePasswordFromResetKey()
Я тоже смотрю на это, но еще не реализовал. Да, я думаю, что вы правы, что вам нужно самим вызывать API MembershipReboot. Есть методы на UserAccountService
класс для выполнения этих функций. См. Пример SingleTenantOwinSystemWeb в исходном коде MembershipReboot. Функциональность IdentityManager ограничена, но полезна для разработчиков, чтобы настроить пользователей с ролями и заявками и т. Д. Для тестирования или в качестве основного инструмента администратора.