Использование адреса электронной почты для входа в систему - членство API - PullRequest
4 голосов
/ 22 марта 2010

По умолчанию Membership API использует отдельное поле имени пользователя для входа в систему. Я хотел бы использовать адрес электронной почты для пользователей, чтобы войти. Это хорошая идея?

Как бы я изменил Логин, Зарегистрировать пользователя, Забыли пароль, чтобы поддержать это?

Ответы [ 2 ]

5 голосов
/ 22 марта 2010

Конечно, это возможно. Один из способов - изменить шаблон CreateUserWizard, удалить текстовое поле «Электронная почта по умолчанию» и установить для параметра «EmailRequired» значение false. Затем измените метку имени пользователя на E-mail. Если вы используете элемент управления CreateUserWizard, вы должны оставить идентификатор текстового поля в качестве UserName, в противном случае будет выдана ошибка. Затем вы можете получить доступ к «имени пользователя» так же, как обычно, так как адрес электронной почты пользователя будет сохранен в столбце имени пользователя.

Если вы хотите, вы также можете заполнить столбец электронной почты именем пользователя, обработав событие CreatedUser. Например, вы можете сделать что-то вроде этого:

MembershipUser currentUser = Membership.GetUser();
currentUser.Email = currentUser.UserName;
Membership.UpdateUser(currentUser);

Таким образом, столбец электронной почты также заполняется, когда вы хотите использовать методы членства. Основным недостатком является то, что членство API не позволяет вам изменить имя пользователя. Поэтому, если пользователь меняет свой адрес электронной почты, его имя пользователя остается прежним адресом электронной почты. Чтобы это исправить, вам нужно пропустить членство API и перейти прямо к коду SQL. Вы можете узнать, как это сделать здесь

0 голосов
/ 22 марта 2010

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

Но ... В дополнение к ответу Tenaciouslmpy, другим недостатком является то, что вы должны быть осторожны с разоблачением этих "имен пользователей".В конечном итоге вы создадите поле с именем «Отображаемое имя».Это совершенно нормально, но имейте в виду, что это не спасет вас от работы в долгосрочной перспективе.

...