Требуется, чтобы пользователи могли входить через Facebook, Yahoo и др., Поскольку создавать учетные записи везде очень раздражает.
Мы стремимся предоставитьнесколько вариантов Аутентификация с нашей стороны Пользователи , будь то управляемая вами комбинация имени пользователя и пароля, поставщик OpenId или поставщик OAuth.
Я считаю лучшимподход заключается в том, чтобы сделать эти две концепции (членство и аутентификация) явными.
Мне все равно, как пользователь аутентифицирует , просто при условии, что я могу найти их user информация, когда они это делают.
Простой подход к созданию таблицы User со следующей информацией:
Name
Email
Authentication Type
Authentication Id
Пример:
Name Email AuthenticationType AuthenticationId
---- ------- ------------------ ----------------
John a@b.com GoogleOpenId OpenIdClaimId
Ben c@d.com Internal ben
Dave e@f.com FacebookOAuth FacebookUserId
Когда пользователь аутентифицируется, мы можем загрузить его пользовательскую информацию, используя метод аутентификации и идентификатор в качестве критерия.Для внутреннего провайдера членства мы можем использовать его имя пользователя, для OpenId их URL-адрес претензии и для OAuth их идентификатор провайдера (например, идентификатор Twitter).
Поэтому непременно используйте EF для управления пользователями но я бы отнесся к провайдеру членства как к еще одному механизму аутентификации, и в этом случае вы также можете использовать стандартный SqlMembershipProvider.
Я написал этот пост очень давно (в контекстеинтернет-магазинов), которые могут быть полезны.