Я создаю новое приложение ASP.NET MVC (на С#), и одним из требований является создание новой базы данных членов. Для этого нам нужны роли для управления различными типами членов и профилей для управления дополнительными метаданными, прикрепленными к каждому члену. До сих пор так хорошо, просто используйте стандартные MembershipProvider, RoleProvider и ProfileProvider, предоставляемые как часть .NET Framework.
Однако уловка заключается в том, что я хотел бы разрешить различные методы аутентификации. Я бы хотел, чтобы Учетные записи и учетные данные для входа имели отношение "один ко многим" (одна учетная запись может содержать несколько учетных данных для входа). Например, пользователь может иметь учетную запись OpenID и ActiveDirectory, прикрепленную к их учетной записи.
Однако после нескольких экспериментов мы выбрали маршрут MembershipProvider (объяснили, как это было достигнуто в качестве ответа ниже).
Мой вопрос в том, как люди делали это раньше и как люди подскажут, что я подхожу к нему? Это похоже на то, что достигается на целом ряде сайтов, но поиск здесь не возвращает ничего твердого, с которым можно было бы играть.
РЕДАКТИРОВАТЬ: Оглядываясь в течение хорошего часа в ночное время и сегодня утром - я все еще не убежден в том, что самым простым вариантом было бы уничтожение одного участника-членства. Имеет ли множественные MembershipProviders тот же эффект?
BOUNTY EDIT: без ответов я предполагаю, что нет более оптимального решения, которое я написал в качестве ответа. Это действительно так? Я предлагаю щедрость попробовать и посмотреть, есть ли у кого-нибудь дальнейшие мысли об этом и есть ли лучшие альтернативы.
BOUNTY ACCEPT EDIT: Я думаю, что WIF - это ответ, как принято ниже, для выпуска .NET 4 и, возможно, для других версий, поскольку он, вероятно, работает с 3.5. Помимо этого, возможно, может быть уместен зараженный членский подход или адаптированный.