- Стандартные таблицы удостоверений
- Существующие базы данных клиентов с определяемыми пользователем структурами и хешированием паролей
- Внешние системы, такие как Active Directory.
Насколько я понимаю, я могу перезаписать функцию PasswordSignInAsync и затем реализовать ее самостоятельно в случае внешней базы данных клиента или ActiveDirectroy.
Есть ли лучший способ реализовать различные варианты входа в серверное приложение Blazor?
Трудность здесь состоит в том, чтобы разделить аутентификацию и авторизацию.
Если используется база данных, соответствующая схеме SignInManager, SignInManager может использовать ее 1:1 с соответствующими ролями. Файл cookie с информацией о пользователе и авторизациях также может быть установлен напрямую.
В коде я проверяю соответствующие авторизации для каждой страницы, чтобы увидеть, разрешено ли пользователю это делать.
Если вход в систему теперь выполняется через внешнюю БД с собственной структурой БД, то аутентификация должна быть реализована сама вручную.
Тогда авторизация должна быть проверена с использованием UserId и моего самоопределяемые таблицы авторизации. Таким образом, я могу снова установить файл cookie, и проверка кода может соответствовать тем же ролям/авторизациям.
Если я работаю с SignInManager, я могу использовать его только в обычном случае, если я сам создаю БД, соответствующую схеме SignInManager. Во всех остальных случаях AD и внешней БД мне приходится самому писать логику вручную.
Так что вопрос в том, есть ли смысл писать логин полностью самому. Тогда я более гибок и имею больше возможностей в отношении различных структур БД и разделения авторизации и аутентификации.
Или есть что-то готовое в этом отношении, которое можно использовать?
Подробнее здесь: https://stackoverflow.com/questions/797 ... dbs-and-ad
Мобильная версия