Почему CreateUserWizard Control автоматически добавляет базу данных ASPNETDB.MDF? - PullRequest
2 голосов
/ 23 июля 2011

Я хочу использовать только CreateUserWizard Control для сбора информации от пользователя и вставки в мою пользовательскую базу данных.Я не хочу использовать членство в Asp.Net.

Когда я добавляю этот параметр в web.config <membership> <providers> <clear /> </providers> </membership>

Приходит следующая ошибка Default Membership Provider must be specified.

И когда я удаляю этот параметр из web.config.Страница запускается успешно, НО createUserWizard Control автоматически добавляет базу данных ASPNETDB.MDF в папку App_Data.

Вопрос: Можем ли мы использовать CreateUserWizard с настраиваемой базой данных без использования членства ASPNETDB или asp.net?

Ответы [ 2 ]

3 голосов
/ 23 июля 2011

Элемент управления CreateUserWizard предоставляет пользовательский интерфейс для объекта MembershipProvider, который связывается с хранилищем пользовательских данных вашего веб-сайта для создания новых учетных записей пользователей в хранилище данных. Мастер CreateUserWizard использует MembershipProvider для создания пользователя и отключения его при необходимости (см. msdn ).

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

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

Но из вашего вопроса не понятно, почему вы не хотите использовать стандартное членство. Возможно, стоит взглянуть на возможность включить стандартную схему членства в вашу собственную базу данных и сэкономить много работы (не говоря уже о возможных проблемах безопасности и т. Д.), Используя функцию авторизации, которая уже реализована в asp.net. Здесь вы можете найти, как поместить схему членства в ту же базу данных, что и данные приложения.

UPDATE:

Если вы все еще хотите предотвратить создание пользователем шага CreateUserWizard CreateUser с помощью поставщика членства, вы можете попробовать обработать событие CreateUser и установить для его свойства LoginCancelEventArgs.Cancel значение true.

Пример кода:

protected void RegisterUser_CreatingUser(object sender, LoginCancelEventArgs e) 
{
 e.Cancel = true; 
} 

Затем, чтобы перейти на следующую страницу в мастере, вам нужно обработать событие NextButtonClick:

  1. Добавить e.Cancel = False;
  2. Добавить CreateUserWizard.ActiveStepIndex = (ваш следующий шаг мастера индекс);

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

Надеюсь, это поможет.

0 голосов
/ 23 июля 2011

У меня была та же проблема, что я хотел, чтобы таблицы членства, представления и хранимая процедура были в моей базе данных, поэтому вам нужно выполнить следующую команду в командной строке visual studio и написать следующую командную строку:

Aspnet_regsql.exe -W

Обратите внимание, что в нем учитывается регистр, после чего появится мастер, который позволит вам создавать таблицы членства, представления и хранимые процедуры

enter image description here

Затем вам потребуется обновить файл web.config, чтобы обновить строку подключения, которая указывает на файл .mdf с помощью строки подключения к базе данных.

...