Настройка имени пользователя Facebook в провайдере sqlmembership - PullRequest
1 голос
/ 23 декабря 2010

Я использую Facebook connect и регистрирую пользователей после входа в систему (я добавляю их в свою базу данных).

Я использую провайдера sqlmembership. В настоящее время я получаю полное имя пользователя Facebook и использую его в качестве имени пользователя. Но проблема у меня в том, что если 2 человека имеют одинаковые имена, второй пользователь не зарегистрируется.

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

Какой совет?

Ответы [ 4 ]

0 голосов
/ 23 декабря 2010

Я делал это некоторое время назад.

Это моя таблица:

FacebookUniqueID BIGINT, PRIMARY KEY
FacebookEmail    NVARCHAR(100), NULL

Я также храню другие вещи для аудита, но это ключевая информация.

Теперь вы всегда получите идентификатор пользователя Facebook.Но вы не будете всегда получать адрес электронной почты пользователя - потому что он может запретить доступ - следовательно, я допускаю NULL.

Причина, по которой я храню электронную почту, заключается в том, что уникального идентификатора недостаточно, чтобы жениться наuser до пользователя в вашей системе.

В SqlMembershipProvider именем пользователя обычно является адрес электронной почты.Поэтому я использую поле «FacebookEmail», чтобы связать пользователя.

Если они не позволят вам указать свой адрес электронной почты, вы не сможете выполнить единый вход (например, автоматический вход вваш веб-сайт, когда они аутентифицированы в Facebook).

Но, по крайней мере, если они в конечном итоге предоставят вам разрешение, вы можете обновить поле электронной почты в своей БД и затем выполнить единый вход.

0 голосов
/ 23 декабря 2010

Подумайте о создании собственного поставщика членства в Sql. Я сам использую эту схему для своего приложения, чтобы у вас был точный контроль над тем, как вы хотите хранить свои данные. Посмотрите на

http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

&

http://www.asp.net/general/videos/how-do-i-create-a-custom-profile-provider

0 голосов
/ 23 декабря 2010

зачем использовать что-то, что может измениться (имя человека). люди вступают в брак или ставят себе глупые прозвища, которые часто меняются.

почему бы не использовать только идентификатор? Вы всегда можете создать другую таблицу (вне SqlMembership), чтобы сохранить самое последнее имя для этого пользователя

0 голосов
/ 23 декабря 2010

Вам понадобится идентификатор Facebook; Вы можете сохранить его в сеансе или создать собственный IPrincipal и / или IIdentity и сохранить его с пользовательской информацией.

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...