Для авторизация на сайте я использую стандартные решения от Microsoft. При создании проекта в него можно включить AspNetSqlMembershipProvider. Мне этот провайдер не нравится, так как использует много лишних таблиц. Намного проще реализована авторизация в ASP.NET Universal Providers (DefaultMembershipProvider). Будем его настраивать.
Создаем asp.net mvc 3 проект. Открываем web.config.
Прописываем строку подключения к БД. Вместо текста
Все параметры для авторизации хорошо описаны в msdn и их можно найти в интернете. Стоит только заметить, что мои настройки отличаются от настройок по-умолчанию тем, что я шифрую пароль пользователя (passwordFormat="Encrypted"). Для шифрования нужно также добавить ключи в web.config. Их нужно менять для каждого проекта:
<!-- decryptionKey - 48 символов (для востановления пароля по алгоритму AES),
validationKey - любое (для сравнения хешированных значений по алгоритму SHA1) -->
<machineKey validation="SHA1" validationKey="9999C9ABA99999E9B999DD99F7A99BBD999EBCB9999F9DCA8B2C53FDEE4E877C" decryption="AES" decryptionKey="ED99BBC9C9CB999BAE99B9CEE43A4606B2B99999CE9E9EEE"/>
Эту строку нужно добавить после параметра </membership>
Теперь добавим нужные DLL в проект. Для этого будем использовать NuGet (описание его установки: docs.nuget.org/docs/start-here/installing-nuget). Для установки, нужно вызвать команду "Install-Package System.Web.Providers"
После установки у вас измениться web.config. Нужно по удалять новые параметры roleManager membership profile, оставить только наши.
После этого выбираем меню Project ->"ASP.NET Configuration..."
У вас откроется браузер, из настройками сайта. Переходим на страничку Security.
Активируем роли (жмем Enable roles). Создаем две роли (Create or Manage roles), например Admin и User. Так же можем создать пользователя.
После того как все настройки сделаны, можем запустить проект и войти созданным пользователем