Я провел большую часть вчерашнего дня, читая эту тему, и все еще чувствую, что не знаю, куда идти. Я прихожу из истории "накатить свое", когда дело доходит до аутентификации и авторизации. Мы никогда не использовали проверку подлинности с помощью форм, не говоря уже об API-членстве. Глядя на наш старый код, мы будем использовать переменные сеанса, чтобы фиксировать / контролировать, вошел ли пользователь в систему и т. Д. В этом новом проекте, который я собираюсь предпринять, я хочу вернуть нас к тому, что мы должны были сделать для начала, что это использовать инструменты, предоставляемые фреймворком.
У меня уже есть схема базы данных, с которой я буду работать, однако она не установлена в камне; Я могу внести изменения в него, если это необходимо. В этой схеме уже есть таблица Users, использующая целое число в качестве первичного ключа. Эта таблица также содержит другую информацию, такую как имя и фамилия. У меня также есть внешние ключи, основанные на UserId для других таблиц, таких как Phone и Address. Ниже я опишу некоторые плюсы и минусы, которые приходят на ум.
Поставщик по умолчанию
Плюсы
- Меньше кода.
- Возможность использования всех связанных серверных элементов управления, таких как Логин, ChangePassword.
Против
- Некоторые элементы управления могут быть бесполезны для меня из коробки. Например, CreateUserWizard, мне нужно будет захватить другую информацию во время создания пользователя, такую как информация о телефоне и адресе для связанных таблиц. Не уверен, что это делает этот контроль бесполезным для меня.
- Мне нужно будет создать внешние ключи в связанных таблицах (Телефон, Адрес) для UserId, который является GUID в поставщике по умолчанию.
- Если я создаю эти ограничения внешнего ключа и не использую каскадное удаление; Мне нужно будет также удалить связанные строки в таблицах внешнего ключа. Потенциально необходимо использовать что-то вроде объекта TransactionScope, чтобы убедиться, что все это атомарная операция.
Пользовательский провайдер
Плюсы
- Возможность использовать существующие таблицы схем.
- Проще извлечь аутентификацию / авторизацию в службу по линии.
Против
- Должен сам обеспечивать реализацию для большинства / всего.
- Чтобы использовать любой из элементов управления, я должен предоставить их необходимую реализацию в провайдере.
Могут быть и другие вещи, которые я еще не учел, - то, что я никогда не использовал это раньше, что также делает меня немного неловким.
Спасибо.