Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Пошаговое руководство. Использование проверки подлинности с помощью форм в ASP.NET MVC

Visual Studio 2010

Для многих веб-приложений требуется ограничение доступа к некоторым ресурсам (например, определенным страницам), чтобы эти ресурсы были доступны только пользователям, прошедшим проверку подлинности. Шаблон по умолчанию проекта веб-приложения ASP.NET MVC содержит контроллер, модели данных и представления, которые используются для добавления в приложение форм проверки подлинности ASP.NET. Встроенные функциональные возможности позволяют пользователям регистрироваться, осуществлять вход и выход из системы, а также изменять пароль. Для многих приложений эти функциональные возможности обеспечивают достаточный уровень проверки подлинности.

В данном пошаговом руководстве описаны функциональные возможности, предоставляемые по умолчанию для форм проверки подлинности ASP.NET в приложении ASP.NET MVC. В этом пошаговом руководстве рассматриваются следующие задачи:

  • как создать приложение ASP.NET MVC со встроенными функциональными возможностями проверки подлинности;

  • как использовать встроенные функции для создания новой учетной записи пользователя;

  • как изменять пароль вошедшим в систему пользователям;

  • как ограничить доступ к определенным представлениям, чтобы их могли видеть только прошедшие проверку подлинности (вошедшие в систему) пользователи.

Для выполнения этого пошагового руководства потребуется следующее.

  • Microsoft Visual Studio 2008 с пакетом обновления 1 или Visual Web Developer 2008, экспресс-выпуск с пакетом обновления 1, или более поздняя версия Visual Studio.

  • Платформа ASP.NET MVC 2. Если установлена среда Visual Studio 2010, платформа ASP.NET MVC 2 уже установлена на компьютере. Для загрузки самой последней версии платформы перейдите на страницу загрузки ASP.NET MVC.

В этом пошаговом руководстве также предполагается, что у читателя есть представление о платформе ASP.NET MVC. Дополнительные сведения см. в разделе ASP.NET MVC 2.

Сначала создайте новое веб-приложение ASP.NET MVC.

Чтобы создать веб-приложение ASP.NET MVC, выполните следующие действия.

  1. В меню Файл щелкните Создать проект.

  2. В диалоговом окне Новый проект перейдите к разделу Типы проектов, разверните узел Visual Basic или Visual C#, а затем щелкните элемент Веб.

  3. В группе Установленные шаблоны Visual Studio выберите пункт Веб-приложение ASP.NET MVC 2.

  4. В поле Имя введите MvcAuthentication.

  5. В поле Расположение введите имя папки проекта.

  6. Установите флажок Создать каталог для решения.

  7. Нажмите кнопку ОК.

  8. В диалоговом окне Создание проекта тестирования выберите элемент Нет, не создавать проект модульного теста, а затем нажмите кнопку ОК.

    ПримечаниеПримечание

    При использовании выпуска Visual Studio Standard диалоговое окно Создание проекта модульных тестов не отображается.

    Будет создан новый проект MVC-приложения.

В папке Controllers находится класс контроллеров AccountController, который содержит методы действия, выполняющие регистрацию нового пользователя, позволяющие пользователю осуществлять вход и выход из приложения, а также производящие смену пароля существующего пользователя. В папке Views находится папка Accounts, содержащая представления, которые поддерживают эти действия. В папке Models находится класс AccountModels, содержащий классы, которые определяют объекты данных, службы и программы проверки, поддерживающие проверку подлинности с помощью форм.

В папке Views во вложенной папке Shared находится элемент управления LogOnUserControl.ascx, который указывает, осуществил ли пользователь вход в систему. Этот элемент управления отображается в верхней части представления главной страницы. Если пользователь не вошел в систему, элемент управления отображает надпись "Вход" и ссылается на представление LogOn. Когда пользователь находится в системе, элемент управления отображает приветственное сообщение, которое содержит имя пользователя и ссылку для выхода пользователя из системы.

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

Чтобы зарегистрировать нового пользователя, выполните следующие действия.

  1. Нажмите CTRL+F5 для запуска приложения.

  2. Щелкните Вход в верхней части страницы.

  3. Щелкните Регистрация.

  4. Введите данные в поля Имя пользователя, Адрес электронной почты, Пароль и Подтверждение пароля.

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

  5. Щелкните Регистрация.

    В верхней части страницы появятся приветственное сообщение и ссылка на выход из системы.

После регистрации пользователя платформа ASP.NET MVC проверяет существование файла базы данных членства ASP.NET. Если база данных еще не существует, ASP.NET создает файл базы данных с именем ASPNETDB.MDF и заполняет его необходимыми таблицами.

Для проверки базы данных членства выполните следующие действия.

  1. В обозревателе решений нажмите кнопку Обновить, а затем разверните папку App_Data.

    Файл ASPNETDB.MDF добавлен в папку App_Data.

  2. В обозревателе серверов разверните Подключения данных, а затем разверните ASPNETDB.MDF.

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

Шаблон проекта ASP.NET MVC предлагает методы действий и представления, которые позволяют пользователям изменять пароли, но решение о том, как их использовать, остается за вами. В этом пошаговом руководстве предусмотрено добавление ссылки Смена пароля к элементу управления LogOnUserControl.ascx. В результате ссылка на представление ChangePassword всегда видна пользователю, вошедшему в систему.

Добавление и проверка функциональных возможностей смены пароля

  1. Если веб-приложение все еще запущено в браузере, закройте его.

  2. В папке Views во вложенной папке Shared откройте элемент управления LogOnUserControl.ascx.

  3. Сразу после ссылки действия LogOff вставьте следующую разметку:

    [ <%: Html.ActionLink("Change Password", "ChangePassword", "Account") %> ]
    
  4. Сохраните файл.

  5. Нажмите CTRL+F5 для компиляции и запуска приложения.

  6. Войдите в систему, используя учетные данные, созданные ранее.

    В верхней части страницы появятся приветственное сообщение, ссылка на выход из системы и новая ссылка на изменение пароля.

  7. Щелкните ссылку Смена пароля.

  8. Введите данные в поля Текущий пароль, Новый пароль и Подтверждение нового пароля.

  9. Щелкните ссылку Смена пароля.

    Пароль изменен.

  10. Щелкните ссылку Выйти из системы.

  11. Щелкните ссылку Выполнить вход и войдите в систему, используя то же имя пользователя и новый пароль.

Теперь, когда пользователи могут входить в систему, выходить из нее и менять пароль, можно установить, какие части приложения будут доступны пользователям, прошедшим проверку подлинности. Чтобы ограничить доступ к представлению, пометьте с помощью атрибута AuthorizeAttribute метод действия, создающий представление. Чтобы ограничить доступ ко всем представлениям контроллера, пометьте с помощью атрибута AuthorizeAttribute сам контроллер.

В данном пошаговом руководстве устанавливается ограничение доступа к представлению About.

Ограничение доступа к представлению

  1. Если веб-приложение все еще запущено в браузере, закройте его.

  2. Откройте класс HomeController и перейдите к методу действия About.

  3. Добавьте атрибут AuthorizeAttribute к объявлению метода действия About, как показано в следующем примере:

    [Authorize]
    public ActionResult About()
    {
        return View();
    }
    

    <Authorize()> _
    Function About() As ActionResult
        Return View()
    End Function
    
  4. Сохраните файл.

  5. Нажмите CTRL+F5 для компиляции и запуска приложения.

  6. Не входя в систему, перейдите на вкладку О программе.

    Сейчас отображается представление LogOn, поскольку теперь для отображения страницы About необходимо войти в систему.

  7. Войдите в приложение.

  8. Перейдите на вкладку О программе.

    Отобразится страница About.

Хотя шаблон проекта ASP.NET MVC обеспечивает проверку подлинности форм, можно найти дополнительные сведения о членстве ASP.NET и о добавлении ролей в веб-приложение. Дополнительные сведения см. в следующих разделах:

Другие ресурсы

Показ: