В то время как это не совершенно прозрачно на MSDN, это не все, что это усложнило. Существует трио классов:
Пользовательский MembershipProvider выбран (кодом в Членстве) на основе конфигурации Вашего приложения: configuration/system.web/membership. Вот то, где Вы приносите Вашему поставщику в игру. Ваша реализация MembershipProvider должна быть записана для доступа безотносительно хранилища данных, которое Вы предпочитаете для пользователей: Ваша таблица User в этом случае.
Объекты MembershipUser только создаются через Ваш MembershipProvider. MembershipProvider. ValidateUser () метод должен проверить по Вашему хранилищу данных, что комбинация пользователя/пароля допустима. MembershipProvider. GetUser () получает информацию о пользователе - используют, он в доступе защитил страницу и передачу в Системе. Сеть. HttpContext. Текущий. Пользователь. Идентификационные данные. Имя как текущий аутентифицируемый пользователь.
С учетом вышесказанного, я надеюсь, что Вы уверены, что не хотите использовать Профили и действительно хотеть иметь таблицу отдельного пользователя. Если бы Вы пишете внутреннее приложение, с помощью существующего Active Directory, или LDAP-поддерживающее хранилище данных уменьшило бы затраты на администрирование и вероятно угрозы безопасности. Существуют сотни вещей, которые можно легко сделать неправильно при хождении путем MembershipProvider. Вы используете посолившие хеши? Как Вы защищаете таблицу User от управления? MSDN касается только части проблем безопасности, с которыми можно столкнуться.
Определенный поставщик использовал, управляется на web.config. Можно на самом деле установить больше чем 1 поставщика и иметь по умолчанию. Проверьте: http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx.
При вызове как этот членство просто использует поставщика по умолчанию. Вы наследовали бы MembershipUser, если бы Вы хотели предоставить дополнительную информацию пользователю, но это свяжет остальную часть Вашего кода с Вашим определенным поставщиком.