У меня есть базовое приложение, использующее поставщик членства ASP.NET. По умолчанию вы можете использовать несколько полей, таких как имя пользователя, пароль, запомнить меня.
Как мне добавить поставщика членства asp.net , чтобы я мог добавить дополнительное поле «адрес» в зарегистрировать раздел и сохранить его в базе данных?
В настоящее время при создании пользователя в модели учетной записи я вижу следующее:
public MembershipCreateStatus CreateUser(string userName, string password,
string email)
{
if (String.IsNullOrEmpty(userName))
{ throw new ArgumentException("Value cannot be null or empty.", "userName"); }
if (String.IsNullOrEmpty(password))
{ throw new ArgumentException("Value cannot be null or empty.", "password"); }
if (String.IsNullOrEmpty(email))
{ throw new ArgumentException("Value cannot be null or empty.", "email"); }
MembershipCreateStatus status;
_provider.CreateUser(userName, password, email, null, null, true,
null, out status);
return status;
}
В функции создания пользователя я также хочу сохранить «адрес» пользователя.
В register.aspx я добавил следующее:
<div class="editor-label">
<%: Html.LabelFor(m => m.Address) %>
</div>
<div class="editor-field">
<%: Html.TextAreaFor(m => m.Address) %>
</div>
Есть идеи?
Как отмечалось в jwsample, для этого можно использовать поставщик профилей.
В качестве альтернативы вы можете создать свои собственные таблицы, в которых будет храниться дополнительная информация, относящаяся к пользователю. Это немного больше работы, так как вы находитесь на крючке для создания своих собственных таблиц и создания кода для получения и сохранения данных в эти таблицы и из них, но я считаю, что использование настраиваемых таблиц таким образом обеспечивает большую гибкость и удобство обслуживания. чем поставщик профиля (в частности, поставщик профиля по умолчанию, SqlProfileProvider, который хранит данные профиля неэффективным денормализованным способом).
Взгляните на это руководство, в котором я расскажу о следующем процессе: Сохранение дополнительной информации о пользователе .
Вы захотите использовать для этого Profile Provider, вот для чего он предназначен.Если вы измените поставщика членства, чтобы добавить дополнительное поле, это приведет к разрыву контракта с поставщиком, и вы не сможете переключиться на другого в будущем.
Вот поставщик профиля: http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
Дополнительная информация: http://msdn.microsoft.com/ en-us / library / 014bec1k.aspx
Если вы используете поставщика членства в sql, то у вас, вероятно, установлены все структуры таблиц для поддержки поставщика профилей.