Помогите мне решить, использовать ли провайдеры членства / ролей ASP.NET по умолчанию или написать собственных провайдеров

Я потратил значительную часть вчерашнего дня, читая эту тему, и до сих пор чувствую, что не знаю, куда идти. Когда дело доходит до аутентификации и авторизации, я исхожу из собственного опыта. Мы никогда не использовали аутентификацию с помощью форм, не говоря уже об API членства. Глядя на наш старый код, мы будем использовать переменные сеанса, чтобы фиксировать / контролировать, вошел ли пользователь в систему и т. Д. В этом новом проекте, которым я собираюсь заняться, я хочу вернуть нас к тому, что мы должны были сделать с самого начала, а именно это использовать инструменты, предоставляемые фреймворком.

У меня уже есть схема базы данных, с которой я буду работать, однако она не высечена в камне; При необходимости я могу внести в него изменения. В этой схеме уже есть таблица Users, в которой в качестве первичного ключа используется целое число. В этой таблице также есть другая информация, такая как имя и фамилия. У меня также есть внешние ключи на основе UserId для других таблиц, таких как Phone и Address. Ниже я описываю некоторые плюсы и минусы, которые приходят на ум.

Поставщик по умолчанию

Плюсы

  • Меньше кода.
  • Возможность использовать все связанные серверные элементы управления, такие как вход в систему, Сменить пароль.

Минусы

  • Некоторые элементы управления могут быть непригодны для меня из коробки. Например, CreateUserWizard, мне, возможно, потребуется захватить другую информацию во время создания пользователя, такую ​​как телефон и адрес, в связанные таблицы. Не уверен, что это делает этот элемент управления бесполезным для меня.
  • Мне придется создать внешние ключи в моих связанных таблицах (Телефон, Адрес) для UserId, который является GUID в поставщике по умолчанию.
  • Если я создаю эти ограничения внешнего ключа и не использую каскадное удаление; Мне также нужно будет удалить связанные строки в таблицах внешнего ключа. Возможно, потребуется использовать что-то вроде объекта TransactionScope, чтобы убедиться, что все это атомарная операция.

Пользовательский поставщик

Плюсы

  • Возможность использовать существующие таблицы схемы.
  • Проще извлечь аутентификацию / авторизацию в службу в дальнейшем.

Минусы

  • Сам должен обеспечивать реализацию для большинства / всего.
  • Чтобы использовать какие-либо элементы управления, мне нужно предоставить их требуется реализация в провайдере.

Могут быть другие вещи, которые я еще не рассмотрел, так как я никогда не использовал это раньше, что меня также немного неудобно.

Спасибо.

5
задан e36M3 6 October 2010 в 14:37
поделиться