Конечно, это возможно. Один из способов - изменить шаблон CreateUserWizard, удалить текстовое поле «Электронная почта по умолчанию» и установить для параметра «EmailRequired» значение false. Затем измените метку имени пользователя на E-mail. Если вы используете элемент управления CreateUserWizard, вы должны оставить идентификатор текстового поля в качестве UserName, в противном случае будет выдана ошибка. Затем вы можете получить доступ к «имени пользователя» так же, как обычно, так как адрес электронной почты пользователя будет сохранен в столбце имени пользователя.
Если вы хотите, вы также можете заполнить столбец электронной почты именем пользователя, обработав событие CreatedUser
. Например, вы можете сделать что-то вроде этого:
MembershipUser currentUser = Membership.GetUser();
currentUser.Email = currentUser.UserName;
Membership.UpdateUser(currentUser);
Таким образом, столбец электронной почты также заполняется, когда вы хотите использовать методы членства.
Основным недостатком является то, что членство API не позволяет вам изменить имя пользователя. Поэтому, если пользователь меняет свой адрес электронной почты, его имя пользователя остается прежним адресом электронной почты. Чтобы это исправить, вам нужно пропустить членство API и перейти прямо к коду SQL. Вы можете узнать, как это сделать здесь