Изменение схемы членства в ASP.NET - PullRequest
1 голос
/ 03 января 2011

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

Например, я использую аутентификацию для сотрудников, поэтомубыло бы неплохо изменить имя таблицы с "aspnet_Users" на "Сотрудники".И мне не нужны таблицы персонализации.Но я не знаю, может ли это что-нибудь сломать.

Можно ли изменить / удалить таблицы и хранимые процедуры, не испортив все?

Ответы [ 4 ]

9 голосов
/ 03 января 2011

Стивен, я так понимаю, вы запустили инструмент командной строки aspnet_regsql.exe, чтобы добавить эти объекты базы данных?Кроме того, вы можете добавить только необходимые таблицы / представления / хранимые процедуры для различных частей Членства, запустив соответствующие сценарии SQL, которые вы найдете в папке %WINDIR%\Microsoft.Net\Framework\version (где версия - это .NETверсия, которую вы используете, например v4.0.30319 ).

Там вы найдете файлы с именами InstallCommon.sql, InstallMembership.sql, InstallRoles.sql, InstallProfile.sql, InstallSqlState.sql,и так далее.Вам нужно будет запустить InstallCommon.sql, а затем только те файлы, которые вам нужны.Так что если вам нужны только членство и роли, вы должны запустить InstallCommon.sql, InstallMembership.sql и InstallRoles.sql.Таким образом, ваша база данных не будет включать таблицы / представления / sprocs для профиля, состояния SQL и т. Д.

При всем этом, я бы просто оставил во всех объектах базы данных, что ASP.NETдобавлено.Вероятно, это больше работы, чем стоит добавить только подмножество интересов, и, кто знает, возможно, вам потребуется реализовать профиль или мониторинг работоспособности позже, так почему бы не разместить эти другие объекты базы данных и быть готовыми к работе.

И чтобы ответить на ваш первый вопрос - Нет, невозможно изменить имя таблицы с aspnet_Users на Employees.Тем не менее, нередко создается собственная таблица (возможно, с именем Employees), в которой хранится информация о сотруднике.В этой таблице будет иметь внешний ключ обратно к aspnet_Users, который связывает сотрудника с определенной учетной записью для входа.См. Хранение дополнительной пользовательской информации , чтобы узнать, как это можно сделать.

Счастливого программирования!

2 голосов
/ 03 января 2011

Почему бы не написать простой SqlMembershipProvider ?

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

1 голос
/ 04 января 2011

Вы можете изменить все ссылки на aspnet_Users на Employees в сценариях .sql, упомянутых Скоттом Митчеллом, но это не рекомендуется. API членства / ролей использует хранимые процедуры. Так что если вы не измените имена сохраненных процессов, все будет в порядке.

Проблемы могут возникнуть, если какие-либо будущие изменения в членстве / ролях провайдеров и / или API.

Также скажите, что в будущем вам необходимо предоставить доступ некоторым пользователям, которые не являются Сотрудниками, переименование утратит смысл.

1 голос
/ 04 января 2011

Рассматривали ли вы просто оставить аутентификацию в своей собственной базе данных?

...