2013-09-04 5 views
1

Я новичок в членстве на asp.net. Если мне нужно создать нового пользователя с дополнительным параметром, например, firstname. Должен ли я создать новую таблицу для этих дополнительных параметров?Asp.net: Как добавить дополнительную информацию о пользователе в базу данных членства?

Если я не использую CreateUserWizard для создания пользователя, просто я использую Memberhip.CreateUser для создания пользователя?

Пожалуйста, помогите

ответ

2

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

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

dbo.aspnet_Profile - это таблица, внутри базы данных aspnetdb, используемая по умолчанию для хранения профилей пользователей. Итак, если вы предпочитаете хранить в профиле, после создания пользователя загрузите профиль вновь созданного пользователя и настройте пользовательскую информацию, которую вы собрали.

ProfileCommon p = Profile.GetProfile(strUsername); 
//update the field and save 
p.FirstName= txtFirstName.Text; 
p.Save(); 

Вопрос 2 ::

If I am not using CreateUserWizard to create user, do I just use 
Membership.CreateUser to create the user?? 

Да, это не обязательно использовать CreateUserWizard для создания пользователя. Даже вы можете просто собрать некоторую базовую информацию, такую ​​как: UserName, Password, используя только 2 TextBoxes и создать пользователя, используя различные перегруженные версии метода MemberShip.CreateUser(). Check MSDN. Кроме того, этот Link создал пользователь с очень простой информацией.

1

Там есть таблица с именем UserProfile, который хранит имя пользователя и идентификатор пользователя. Это используется функцией Membership.CreateUser.

Если вы добавите в эту таблицу, столбцы должны иметь значение NULL, иначе оно вызовет ошибку при попытке создать нового пользователя.

Альтернативой является использование отдельной таблицы для хранения дальнейших деталей. Убедитесь, что первичный ключ имеет тип INT и НЕ автоинкремент. Таким образом, вы можете убедиться, что идентификатор совпадает с идентификатором пользователя таблицы UserProfile, избегая отношения между двумя таблицами между 1 и многими.

+0

Благодаря уточнению. Я смотрю на базу данных, у нее нет таблицы UserProfile, но она имеет таблицу «Пользователи и профиль». Таблица пользователей содержит имя пользователя. Таблица профилей получила PropertyNames ... Связана ли эта таблица (включая другие таблицы). – LittleFunny

+0

Я бы предположил (хотя у меня есть другое представление о вас - я использую Razor с EF5 Code First), что таблицы будут связаны либо через тот же PK, либо с помощью отношения FK. Можете ли вы создать тестового пользователя, открыть две таблицы, чтобы проверить соединение? – Andy

2

Свойства профиля ASP.NET можно использовать для хранения дополнительной информации для пользователя. Вы знаете больше об этой статье MSDN.