2

Я использую SQLMembershipProvider и хочу добавить дополнительную информацию о пользователях. Это лучший способ сделать это, чтобы создать новую БД и сделать запись для каждого нового пользователя по мере их создания? Если да, есть ли причина не использовать значение UserID SQLMembershipProvider как ПК в таблице пользователей в моей новой БД?Расширение провайдера членства ASP.NET, PK == FK == Хорошо?

Или есть ли веские причины для создания нового UserID в моей новой базе данных и использования SQLMembershipProvider UserID как FK?

+0

Это зависит от характера информации, которую вы пытаетесь добавить, конечно, но считаете ли вы, что используете функцию профиля для хранения информации? –

+0

Спасибо, Брант. Раньше я сталкивался с функциями профиля. Просто прочитайте http://aspnet.4guysfromrolla.com/articles/101106-1.aspx, что является хорошим вступлением к нему. Он не подходит для этого проекта, если только я не сделал свой собственный профиль. –

ответ

2

Я не могу придумать причину, почему это не будет работать, или почему вы не должны делать это таким образом (идентификатор пользователя, как PK)

я не уверен, почему вы бы использовать отдельную базу данных для всего , Я бы, вероятно, просто создал таблицу в текущей базе данных и настроил ее с помощью userid как FK в таблицу aspnet_users.

+0

Правда. Нет причин использовать отдельную БД. Я просто использовал проект NerdDinner в качестве шаблона, и в этом он использовал отдельную БД. –

1

Если вы собираетесь переписывать поставщика членства, я бы переключил все столбцы PK на BITINT из GUID. Я бы сделал это по двум причинам; один последовательный номер намного легче работать и понимать, а во-вторых, преимущества использования BIGINT вместо идентификаторов GUID. Я бы также просто использовал свой собственный столбец идентификаторов, который можно использовать как другие таблицы в приложении и удалить тот, который по умолчанию используется в поставщике членства в sql. Для этого вам нужно предоставить код для каждой функции в провайдере, это небольшая задача.

0

Я создал обертку вокруг моей существующей схемы базы данных, с классом, производным от MembershipUser, который содержит дополнительные свойства, и MembershipProvider производного, которое создает экземпляры производного класса MembershipUser.

Я использую только методы аутентификации и обновления членства, поскольку другие поддерживающие API несколько ограничены. У меня есть отдельный API для создания/редактирования пользователя для использования администратором.

Это решение сейчас используется на нескольких сайтах и ​​работает хорошо.

Смежные вопросы