Какова цель автоматического создания таблиц в SimpleMembershipInitializer, если я использую свою собственную базу данных для обеспечения безопасности?

Я пытаюсь использовать SimpleMembership со своей собственной базой данных, в которой уже есть все пользователи/роли/и т.д....

С этой целью я изменяю строку WebSecurity.InitializeDatabaseConnection в конструкторе SimpleMembershipInitializer, чтобы она указывала на мою собственную таблицу (примечание autoCreateTables: true):

WebSecurity.InitializeDatabaseConnection("NameOfMyConnectionString", "User", 
                               "UserId", "DomainLogin", autoCreateTables: true);

Затем я создал своего собственного провайдера, в котором я переопределил метод ValidateUser.

В этот момент я запустил приложение, вошел в систему, а затем вышел из нее (это все, что требуется для моего приложения — создание учетной записи находится в другом месте). Я посмотрел на свою базу данных, и были созданы следующие таблицы: webpages_Membership, webpages_OAuthMembership, webpages_Roles, webpages_UsersInRoles. Однако в таблицах ничего не было. Я запустил Profiler, повторил операцию, и никоим образом на эти таблицы не ссылались.

Так безопасно ли изменить параметр autoCreateTables с true на false?

P.S. Да, я прочитал этот вопрос, но он не ответил на мой конкретный вопрос.


person AngryHacker    schedule 21.03.2014    source источник
comment
Если ваши таблицы членства существуют в базе данных, вам, вероятно, понадобится autoCreateTables: false, чтобы вы случайно не удалили существующие записи или не создали новые ненужные таблицы.   -  person Jasen    schedule 22.03.2014


Ответы (1)


По сути, команда MVC хотела дать людям возможность быстро приступить к работе без необходимости выполнять много рутинной подготовки пользователей\ролей, которая приходит с совершенно новым проектом — концепция заключалась в том, чтобы получить базу данных, создать users, а об остальном позаботится SimpleMembershipProvider (это так просто!).

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

person X3074861X    schedule 21.03.2014