Откуда взялся aspnetdb.mdf в моем приложении ASP.NET MVC? - PullRequest
5 голосов
/ 16 апреля 2011

Я новичок в ASP.NET и только начинаю изучать ASP.NET MVC 3. Я запустил новый проект ASP.NET MVC 3, используя шаблон по умолчанию, в котором уже сконфигурировано большинство элементов членства.,Теперь я пытаюсь понять, что на самом деле происходит за кулисами.

Я обнаружил, что шаблон по умолчанию определяет интерфейс IMembershipService, который реализуется классом AccountMembershipService, который в основном просто оборачивает System.Web.Security.MembershipProvider.Из комментариев в коде звучит, как будто эта абстракция сделана для облегчения модульного тестирования.

По умолчанию MembershipProvider установлен в файле Web.config.Мой проект, который был создан из шаблона по умолчанию, имеет значение SqlMembershipProvider.

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="/" />
  </providers>
</membership>

Это указывает на строку подключения в файле Web.config, который ссылается на базу данных SQL Express «aspnetdb.mdf»..

  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

Когда я впервые создал свой проект, файла aspnet.mdf не было.Но после запуска моего приложения и регистрации нового пользователя в этом файле автоматически генерировались таблицы и все.Что тут происходит?Что создает этот файл и указывает таблицы, которые должны быть созданы?

1 Ответ

2 голосов
/ 16 апреля 2011

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

Используйте этот инструмент для добавления соответствующих таблиц и т. Д. В существующую установку SQL Server.: http://msdn.microsoft.com/en-us/library/ms229862(v=VS.100).aspx

...