Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

НТН!

Ответ 2

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

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

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

  • Пользователь подписывается на сайт с FB, а затем подписывается с возвратом FB.
  • Пользователь подписывается на FB, а затем подписывается с электронной почтой по возврату.
  • Пользователь подписывается электронной почтой, а затем подписывается с возвратом FB.
  • Пользователь подписывается с электронной почтой, а затем подписывается с электронной почтой по возврату.

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

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

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

Я создал страницу, которая после регистрации FB запрашивает пароль. Это дает дружеское сообщение, такое как "Поздравляем! Создана ваша учетная запись на [нашем сайте]. Для вашей конфиденциальности facebook не сообщает нам, что ваш пароль. Пожалуйста, создайте пароль для [нашего сайта] ниже. (Пока вы войдите в facebook, вы никогда не будете использовать это).

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

Ответ 3

Проект Facebook С# SDK на CodePlex предлагает несколько отличных образцов проектов для начала работы. Тот, который я использовал, представляет собой образец CS-AspNetWebForms-RegistrationForm. Достаточно легко следовать, но у меня есть несколько вопросов, таких как получение Facebook UserID.

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

Ответ 4

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