ASP.NET MVC: работа с Membership provider

По умолчанию, в шаблоне проекта веб-сайта ASP.NET MVC в Visual Studio 2010 к использованию предлагается встроенный в платформу провайдер членства.
При его использовании может возникнуть вопрос о том, как перенести и настроить базу данных вашего сайта для использования базового Membership Provider?

Прежде всего, в базе данных веб-сайта нужно создать таблицы необходимые для работы провайдера членства ASP.NET MVC. Сделать это можно автоматически с помощью средства aspnet_regsql. Для запуска программы необходимо запустить командную оболочку Visual Studio 2010 (сделать это можно через меню пуск, или в самой среде).
После запуска оболочки необходимо выполнить команду aspnet_regsql, по которой запустится мастер установки SQL Server в ASP.NET. После чтения ознакомительной страницы нажимаем кнопку «Далее» и попадаем на страницу выбора параметров установки.
Здесь выбираем опцию «Настроить SQL Server для служб приложений», нажимаем кнопку «Далее». На странице выбора сервера и базы данных вводим имя базы данных, учетные данные и имя базы данных для работы.
После этого нажимаем «Далее» до появления кнопки «Готово».

Если все прошло успешно в выбранной базе данных должны появится следующие таблицы:


После создания базы данных, необходимо настроить файл web.config вашего веб-сайта. Для функционирования провайдера членства он должен содержать следующие строки:
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=true;Initial Catalog=sample database"
providerName="System.Data.SqlClient" />
</connectionStrings>

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

<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>

<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"
connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider"
applicationName="/" />
</providers>
</roleManager>

Комментарии к приведенному фрагменту.
1. В секции
«connectionString» необходимо добавить соединение с именем «ApplicationServices» (и именно таким) и параметрами доступа к базе данных веб-сайта.
2. В секции
«membership» легко заметить множество параметров провайдера членства, некоторые из которых вы захотите поменять.

После создания таблиц в базе данных и настройки web.config веб-сайт уже готов к работе базового Membership provider. Проверить корректность настроек можно с помощью веб-инструмента конфигурации ASP.NET для вашего решения. Запустить его можно нажав на кнопку молотка на фоне глобуса в панели обозревателя решений:


После запуска мастера выберите вкладку
«Безопасность», и если перед вами появятся три таблицы («Пользователи», «Роли» и «Правила доступа»), а не сообщения об ошибках, значит все сделано правильно. Мастер можно смело использовать для создания пользователей, ролей, членства и прочего-прочего.

Реализация форм авторизации, управления профилем и прочих будет рассмотрена в следующих материалах нашего сайта.


 
 

Статьи на схожую тематику:

ASP.NET MVC: IIS6
ASP.NET MVC: страница авторизации по умолчанию
Visual Studio 2010: Master Product Key и правила его формирования
ASP.NET: URL Rewriting в .NET 4
ASP.NET: Google Maps, часть I