Интеграция аутентификации Facebook с существующим членством ASP.NET - PullRequest
19 голосов
/ 01 марта 2011

Платформа кодирования: ASP.NET 4.0 WebForms с C #

У нас есть веб-сайт с существующими данными для входа, управляемыми провайдером членства ASP.NET.
Теперь клиент хочет добавить к нему Facebook Connect.

Итак, я регистрируюсь, регистрируясь с помощью кнопки Facebook.
Как мне выполнить интеграцию успешной аутентификации с Facebook для моего участника?

Я планирую создать имя пользователя с уникальным идентификатором в качестве нового пользователя в членстве ASP.NET и связать его с другой таблицей, содержащей других пользователей с открытым идентификатором (поскольку в будущем мы планируем перейти на Google, Твиттер, лайв и все).Это лучший метод?

Ответы [ 4 ]

6 голосов
/ 05 марта 2011

Ну, я думаю, что у вас есть два варианта здесь.

Вариант A: Используйте Плагин регистрации Facebook , а затем зарегистрируйте пользователя как обычного пользователя.т. е. идентификатор пользователя FB не сохраняется в БД, у вас есть только один тип пользователя.

Вариант B: Запрос разрешения электронной почты в вашем подключении FB и получениеадрес электронной почты пользователя для сравнения с вашей пользовательской таблицей и сопоставления (идентификатор вашей пользовательской таблицы с идентификатором FB) в случае, если он найден в вашей БД.

HTH!

6 голосов
/ 24 марта 2011

Подождите, есть набор инструментов для разработчиков facebook на codeplex?Жаль, что я знал это.: -p

Я заметил, что большинство сайтов, которые позволяют вам входить через Facebook или по электронной почте, позволяют делать только ОДИН ИЛИ ДРУГОЙ.Например, у меня есть учетная запись LivingSocial.com - и, хотя они предлагают FB, я могу войти в систему только по электронной почте (именно так была создана моя учетная запись).У меня есть учетная запись BrazenCareerist, но это позволяет мне войти в систему ТОЛЬКО с моим FB (даже если они поддерживают электронную почту), потому что учетная запись была создана через FB Connect / Open-Graph.

Мне не понравился этот подход, так как он был ограничен - поэтому я хотел, чтобы пользователи могли входить в систему так, как им хочется.У вас есть 4 потока:

  1. Пользователь регистрируется на сайте с FB, а затем входит в FB по возвращении
  2. Пользователь регистрируется в FB, а затем по электронной почте при возврате
  3. Пользователь подписывается по электронной почте, а затем входит в FB по возвращении
  4. Пользователь подписывается по электронной почте, а затем по электронной почте при возврате

Если они регистрируются сfacebook, захватите их адрес электронной почты для будущего использования (через FB API).

Если они уже зарегистрированы на вашем сайте, то при входе в FB нет необходимости запрашивать пароль.(проверьте их документацию http://developers.facebook.com/docs/authentication/)

Если они войдут в систему со своим адресом электронной почты, им нужно будет ввести пароль. Они, вероятно, созданы, если они зарегистрировались со своим адресом электронной почты; но хитростьв том, что, если они подписались на FB, у них НЕ могло быть пароля.

Я создал страницу, которая после регистрации в FB запрашивает пароль. Она выдает дружеское сообщение типа "Поздравляем! Вы зарегистрированы на [наш сайт]. Для вашей конфиденциальности Facebook не сообщает нам, какой у вас пароль. Пожалуйста, создайте пароль для [нашего сайта] ниже. (Если вы входите в Facebook, вы никогда не будете его использовать). "

Надеюсь, это поможет.

2 голосов
/ 14 января 2012

Проект Facebook C # SDK на CodePlex предлагает несколько отличных примеров проектов для начала.Я использовал образец CS-AspNetWebForms-RegistrationForm.За ним достаточно легко следить, но у меня есть несколько проблем, таких как получение идентификатора пользователя Facebook.

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

0 голосов
/ 02 марта 2011

Боюсь, мой ответ будет немного ненадежным, я не использовал его и не знаю, интегрируется ли он с Facebook.Однако Windows Identity Foundation может вас заинтересовать: http://msdn.microsoft.com/en-us/security/aa570351

...