Вопрос

Мы сталкиваемся с большим количеством стен и камней преткновения, когда создаем собственное членство на основе MembershipProvider, MembershipUser, RoleProvider и т. д.

У нас есть ряд интересных требований, и поставщик услуг членства, похоже, не особо помогает нам в их выполнении:

  • Пользователи могут иметь несколько логинов.
  • У пользователей нет имени пользователя напрямую (но они могут иметь логин с именем пользователя).
  • У пользователей есть одна уникальная ссылка (в настоящее время это автоматически увеличивающийся первичный ключ).

Для реализации у нас есть две таблицы:Пользователи, имеющие связь «один-многие» с входами в систему.

Фактически это означает, что у нас есть Пользователь, который (в гипотетическом мире) может автоматически войти в систему через свою учетную запись Active Directory (если это возможно) или через OpenID или комбинацию имени пользователя и пароля.У нас также будут пользователи, у которых может не быть учетной записи AD.

Первоначально я попытался переназначить классы Membership, создав:- CustommembershipProvider - CustomMemberShipUser - CustomRolesProvider

Но вся моя борьба с этим привела к тому, что у меня только синяки под глазами и синяки, правда, Действительно хочет имя пользователя!

Сделал ли я это наилучшим образом?Должен ли я начинать с нуля и ничего не наследовать?Должен ли я основывать его на классе IProvider?Или, может быть, классы GenericPrincipal и GenericIdentity?Или я просто что-то упускаю из MembershipProvider?

Я хочу, чтобы конечный процесс программирования был таким же простым, как и готовые элементы членства, например.

Membership.GetCurrentUser();

И избегайте менее упрощенного опыта конечного кодирования...

Это было полезно?

Решение

У меня был аналогичный опыт, и я решил предоставить всем пользователям общее членство для проверки ролей и т. д. и сопоставить его с разными поставщиками аутентификации (OpenID, AD, поставщики членства и т. д.), чтобы они могли проходить аутентификацию по-разному.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top