Как добавить дополнительное поле с помощью ASP. Чистый поставщик членства?

У меня есть базовое приложение, использующее поставщик членства 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>

Есть идеи?

11
задан Adrita Sharma 1 June 2019 в 07:37
поделиться

2 ответа

Как отмечалось в jwsample, для этого можно использовать поставщик профилей.

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

Взгляните на это руководство, в котором я расскажу о следующем процессе: Сохранение дополнительной информации о пользователе .

9
ответ дан 3 December 2019 в 08:28
поделиться

Вы захотите использовать для этого Profile Provider, вот для чего он предназначен.Если вы измените поставщика членства, чтобы добавить дополнительное поле, это приведет к разрыву контракта с поставщиком, и вы не сможете переключиться на другого в будущем.

Вот поставщик профиля: http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
Дополнительная информация: http://msdn.microsoft.com/ en-us / library / 014bec1k.aspx

Если вы используете поставщика членства в sql, то у вас, вероятно, установлены все структуры таблиц для поддержки поставщика профилей.

3
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: