Пошаговое руководство. Создание веб-узла с членством и именами пользователей

Visual Studio 2010

Частое требование для веб-сайтов — позволять просматривать некоторые страницы только определенным пользователям (прошедшим проверку подлинности). В этом случае на веб-сайте обычно реализуется возможность входа и проверки подлинности пользователей; при этом для анонимных пользователей (не выполнивших вход) информация остается скрытой.

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

Если создать в Microsoft Visual Studio 2010 веб-приложение с использованием шаблона веб-проекта, этот шаблон будет включать страницы, реализующие базовую функцию входа с использованием элементов управления входом и членства ASP.NET. Однако этот шаблон не включает все функции, описанные в этом пошаговом руководстве. Если шаблон не содержит необходимые функции, или если вы предпочитаете самостоятельно создать систему управления членством, можно воспользоваться входящими в шаблон элементами управления ASP.NET, чтобы создать пользовательские страницы входа и членства.

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

В данном пошаговом руководстве представлены следующие задачи:

  • Создание веб-сайта.

  • Создание домашней страницы, доступной для всех пользователей.

  • Создание страницы входа.

  • Создание страницы с доступом только для членов.

  • Настройка членства.

  • Добавление новых пользователей (членов).

  • Предоставление пользователям возможности изменять свои пароли.

  • Предоставление пользователям возможности сбрасывать забытый пароль.

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

  • Программное обеспечение Visual Studio 2010 или Visual Web Developer 2010, экспресс-выпуск, установленное на компьютере.

  • SQL Server Express, установленный локально на компьютере.

  • Доступ к серверу электронной почты, который может пересылать сообщения. (Сервер не обязан иметь возможность получать сообщения.) Если доступ к серверу электронной почты отсутствует, процедуры этого пошагового руководства все равно можно будет выполнить, однако функция восстановления пароля будет недоступна.

Для создания собственных страниц входа пользователей необходимо предварительно создать пустой веб-сайт.

В данном пошаговом руководстве используется проект веб-сайта. Вместо этого можно использовать проект веб-приложения. Сведения о различиях между этими типами веб-проектов см. в разделе Сравнение проектов веб-приложений с проектами веб-сайтов.

Создание веб-сайта

  1. Запустите Visual Studio 2010 или Visual Web Developer 2010, экспресс-выпуск.

  2. В меню Файл выберите пункт Создать веб-узел. (Если этот пункт отсутствует, выберите команду Создать, а затем — Веб-узел.)

    Откроется диалоговое окно Новый веб-узел.

  3. В разделе Установленные шаблоны щелкните Visual Basic или Visual C# и выберите пункт Пустой веб-сайт ASP.NET.

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

  4. В поле Расположениев Интернете выберите пункт Файловая система и введите имя папки, в которой будут храниться страницы веб-сайта. Например, введите имя папки C:\Websites\Membership и нажмите кнопку ОК.

Visual Studio создаст пустой веб-сайт, содержащий только файл Web.config.

Сначала необходимо создать домашнюю страницу, с которой будут начинать работу с сайтом все пользователи.

Создание домашней страницы

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта веб-сайта и выберите команду Добавить новый элемент.

    Откроется диалоговое окно Добавление нового элемента.

  2. Если окно Обозреватель решений не отображается, выберите пункт Обозреватель решений меню Вид.

  3. Выберите элемент Форма Web Form, примите имя по умолчанию (Default.aspx) и нажмите кнопку Добавить.

  4. Переключитесь в представление конструктора и добавьте текст, например "Моя домашняя страница".

  5. На панели инструментов Форматирование используйте раскрывающийся список Формат блока, чтобы отформатировать текст как Заголовок 1.

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

Создание страницы входа в систему

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта веб-сайта и выберите команду Добавить новый элемент.

  2. Выберите Форма Web Form, измените имя по умолчанию на Login.aspx и нажмите кнопку Добавить.

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

    В данном пошаговом руководстве страница должна называться Login.aspx. По умолчанию проверка подлинности ASP.NET настроена для работы со страницей с таким именем. (Хотя это не будет выполнено в данном руководстве, можно изменять страницу входа по умолчанию в файле Web.config).

  3. На странице Login.aspx переключитесь к представлению конструктора.

  4. Добавьте на страницу текст, например "Страница входа", и с помощью списка Формат блока снова задайте для заголовка стиль Заголовок 1.

  5. Нажмите клавишу ВВОД, чтобы создать еще один абзац.

  6. Из группы Вход в систему на панели элементов перетащите элемент управления Login на новый абзац.

    Элемент управления Login запрашивает у пользователя учетные данные и проверяет их. При необходимости можно воспользоваться ссылкой Автоформат на панели смарт-тегов, чтобы применить форматирование к элементу управления Login.

Отображение подробных ошибок входа

Элемент управления Login содержит проверку, чтобы помочь пользователям вводить правильные сведения. Например, если пользователь пропустит ввод пароля, проверяющий элемент управления покажет звездочку (*) рядом с текстовым полем Пароль. Для отображения на странице более подробных сведений об ошибках необходимо добавить элемент управления ValidationSummary.

Отображение подробного описания ошибки входа

  1. Перетащите элемент управления ValidationSummary из группы Проверка на панели элементов на страницу Login.aspx. Разместите элемент управления ValidationSummaryпод элементом управления Login.

  2. В окне Свойства элемента управления ValidationSummary присвойте свойству ValidationGroup значение Login1 — значение по умолчанию идентификатора добавленного ранее элемента управления Login.

    (Если окно Свойства не отображается, в меню Вид выберите Окно свойств.)

  3. Сохраните страницу и закройте ее.

Теперь можно протестировать страницу входа.

Тестирование страницы входа

  1. В обозревателе решений щелкните правой кнопкой мыши страницу Login.aspx и выберите команду Просмотреть в обозревателе.

  2. Без ввода каких-либо данных в элемент управления входом щелкните Войти.

    Рядом с полями Имя пользователя и Пароль появится звездочка, поскольку соответствующие значения не введены. Кроме того, элемент управления ValidationSummary выведет сообщения об ошибках, содержащие сведения об ошибках на странице.

  3. Закройте браузер.

Отображение информации для вошедших в систему пользователей

Следующий шаг — изменение домашней страницы, чтобы настроить разное отображение страницы в зависимости от того, выполнен ли вход в систему. Анонимные пользователи получают универсальное сообщение с предложением выполнить вход. Пользователи, выполнившие вход в систему, увидят сообщение приветствия с обращением по их имени пользователя.

Настройка отображения для вошедшего в систему пользователя

  1. Откройте страницу Default.aspx или перейдите на нее и откройте представление конструктора.

  2. Из группы Вход в систему на панели элементов перетащите на страницу элемент управления LoginView.

    Элемент управления LoginView отображается с открытым шаблоном AnonymousTemplate. Данный шаблон позволяет определить содержимое, которое пользователь будет видеть, пока не войдет в систему.

  3. Щелкните по области редактирования элемента управления LoginView для активации режима редактирования.

  4. В области редактирования шаблона AnonymousTemplate элемента управления LoginView введите "Вы не вошли в систему. Щелкните ссылку входа, чтобы войти".

    На следующем рисунке показана область редактирования элемента управления LoginView, содержащая текст.

    Элемент управления LoginView

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

    <asp:LoginView ID="LoginView1" runat="server" >
          <AnonymousTemplate>
              You are not logged in. Click the Login link to sign in. 
           </AnonymousTemplate>  
    </asp:LoginView>
    
  5. В представлении конструктора выберите элемент управления LoginView и на панели Задачи LoginView в списке Представления щелкните LoggedInTemplate. Если панель Задачи LoginView не видна, щелкните правой кнопкой мыши заголовок элемента управления LoginView и выберите команду Показать смарт-тег.

    Шаблон LoggedInTemplate определяет содержимое, которое будет видно пользователям, вошедшим в систему.

  6. Щелкните область редактирования элемента управления LoginView для активации режима редактирования, а затем введите следующий текст: "Вы вошли в систему. Добро пожаловать,".

  7. Поместите курсор в область редактирования LoggedInTemplate сразу после только что добавленного текста. В группе Вход в систему на панели элементов дважды щелкните элемент управления LoginName. Элемент управления LoginName отображает имя находящегося в системе пользователя.

  8. Из группы Вход в систему на панели элементов перетащите на страницу элемент управления LoginStatus. Элемент управления LoginStatus отображает ссылку Вход, когда пользователь не находится в системе. Если пользователь вошел в систему, этот элемент управления отображает ссылку Выход.

  9. Сохраните страницу.

Типичная задача для многих веб-сайтов — разрешить просмотр определенных страниц только вошедшим в систему пользователям. Поэтому следующей задачей этого пошагового руководства будет создание папки для страниц, доступных только для членов, добавление в эту папку страницы и создание правила, ограничивающего доступ к страницам из этой папки.

Добавление новой папки на веб-узел

  1. В обозревателе решений щелкните правой кнопкой мыши имя веб-сайта и выберите команду Создать папку.

  2. Назовите папку MemberPages.

  3. В обозревателе решений щелкните правой кнопкой мыши папку MemberPages и выберите команду Добавить новый элемент.

  4. Добавьте новую страницу веб-форм с именем Members.aspx.

  5. Нажмите кнопку Добавить.

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

    Убедитесь, что новая страница создается в папке MemberPages.

  6. Переключитесь в представление конструктора и добавьте на страницу текст, например "Добро пожаловать на страницу, доступную только для членов!". Точный текст не имеет значения, нужна просто возможность распознать эту страницу при ее просмотре в браузере. С помощью раскрывающегося списка Формат блока задайте для текста форма Заголовок 1.

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

Создание ссылки на страницу с доступом только для членов

  1. Откройте страницу Default.aspx или перейдите к ней.

  2. Из группы Стандартные в Панели элементов перетащите элемент управления HyperLink на страницу.

  3. В окне Свойства выполните следующие действия для элемента управления HyperLink.

    1. Задайте для свойства Text значение "Страница только для членов".

    2. Задайте для свойства NavigateUrl значение ~/MemberPages/Members.aspx. Оно указывает на ранее созданную страницу.

  4. Сохраните страницу.

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

Тестирование ссылки

  1. В обозревателе решений щелкните правой кнопкой мыши страницу Default.aspx, после чего выберите команду Просмотр в обозревателе.

  2. Щелкните Страница только для членов.

    Будет открыта страница с доступом только для членов, поскольку она еще не защищена. (Более того, по умолчанию в ASP.NET используется проверка подлинности Windows, поэтому предполагается, что выполнен вход с использованием учетных данных Windows.)

  3. Закройте браузер.

Следующим шагом является настройка членства ASP.NET и задание пользователей. Для этого можно воспользоваться средством администрирования веб-сайта, которое содержит интерфейс настройки в стиле мастера. По завершении настройки в папке App_Data проекта будет создана база данных SQL Server с именем ASPNETDB.MDF. Эта база данных будет содержать сведения о членстве для данного веб-сайта.

В данном пошаговом руководстве будет определен один пользователь.

Создание членства пользователя

  1. В меню Веб-узел выберите Конфигурация ASP.NET.

  2. Перейдите на вкладку Безопасность, щелкните ссылку Использовать Мастер настройки безопасности для пошаговой настройки безопасности и нажмите кнопку Далее.

    Мастер отобразит страницу, где можно выбрать метод проверки подлинности, который будет использовать ваш веб-узел.

  3. Выберите параметр Из Интернета.

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

  4. Нажмите кнопку Далее.

    Мастер указывает, что приложение настроено на использование расширенных параметров поставщика. По умолчанию сведения о членстве хранятся в файле базы данных Microsoft SQL Server в папке App_Data веб-сайта.

  5. Нажмите кнопку Далее.

  6. Снимите флажок Включить роли для этого веб-сайта и нажмите кнопку Далее.

    Мастер отобразит страницу, где можно создавать новых пользователей.

  7. Введите сведения, определяющие пользователя веб-сайта. Используйте следующие значения, как подсказку. (Можно использовать любые значения, но не забудьте записать их. Эти значения потребуются далее в данном пошаговом руководстве.)

    • User Name . Ваше имя (без пробелов) или пример имени.

    • Password . Пароль. Требуется надежный пароль (содержащий прописные и строчные буквы, знаки препинания, и хотя бы восьми знаков в длину).

    • E-mail . Ваш личный адрес электронной почты. Если потребуется сбросить пароль, на этот адрес электронной почты будет выслан новый пароль. Поэтому необходимо ввести действующий адрес электронной почты.

    • Security Question and Security Answer. Введите вопрос и ответ на него, которые могут быть использованы позже, если потребуется восстановить пароль.

  8. Установите флажок Активный пользователь.

  9. Нажмите кнопку Создать пользователя.

    Мастер отобразит страницу подтверждения.

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

    Не закрывайте средство администрирования веб-узла.

Настройка правил доступа к странице для членов

Ранее в этом пошаговом руководстве была создана папка с именем MemberPages и добавлена страница с доступом только для членов. В этой части руководства предстоит создать правило, гарантирующее, что только вошедшие в систему пользователи могут получить доступ к страницам в этой папке.

Настройка правил доступа

  1. В мастере безопасности средства администрирования веб-сайта нажмите кнопку Далее.

    Появится страница мастера Добавление новых правил доступа.

  2. В поле Добавить новое правило доступа разверните узел веб-узла.

  3. Выберите MemberPages — созданную ранее папку.

  4. В группе Правило применяется к, выберите Анонимные пользователи.

  5. В группе Разрешение выберите Запретить.

    Создаваемое правило запрещает доступ анонимным пользователям, то есть пользователям, не вошедшим в систему.

  6. Нажмите кнопку Добавить это правило.

    Новое правило отобразится в таблице. При запросе пользователем страницы из папки MemberPages проверяются правила, чтобы определить, разрешать ли пользователю доступ к странице.

  7. Нажмите кнопку Готово.

Вы закончили работу с Мастером. Мастер закрывается, и вы возвращаетесь на вкладку Безопасность средства администрирования веб-сайта.

Тестирование доступной только членам страницы

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

Проверка страницы с доступом только для членов

  1. В Visual Studio перейдите к странице Default.aspx или нажмите сочетание клавиш CTRL+F5, чтобы запустить веб-сайт.

  2. Когда страница Default.aspx отобразится в браузере, не выполняйте вход. Вместо этого щелкните ссылку Страница только для членов.

    Будет открыта страница Login.aspx, поскольку доступ к странице для членов запрещен анонимным пользователям.

  3. На странице входа введите имя пользователя и пароль, которые ранее использовались для создания пользователя.

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

  4. Закройте окно браузера.

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

Создание страницы регистрации

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

Создание страницы регистрации

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта веб-сайта и выберите команду Добавить новый элемент.

  2. Добавьте новый элемент Форма Web Form с именем Register.aspx и нажмите кнопку Добавить.

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

    Убедитесь, что страница создается в корневом каталоге веб-сайта, а не в папке MemberPages.

  3. На странице Register.aspx переключитесь в представление конструктора и введите текст, например "Регистрация". На панели инструментов Форматирование используйте раскрывающийся список Формат блока, чтобы отформатировать текст как Заголовок 1.

  4. Из группы Вход в систему на панели элементов перетащите на страницу элемент управления CreateUserWizard.

  5. В окне Свойства элемента управления CreateUserWizard установите свойство ContinueDestinationPageUrl в ~/Default.aspx.

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

  6. Из группы Стандартные в Панели элементов перетащите элемент управления HyperLink на страницу.

  7. В окне Свойства выполните следующие действия для элемента управления HyperLink.

    • Задайте для свойства Text значение "Домой".

    • Задайте для свойства NavigateUrl значение ~/Default.aspx.

  8. Сохраните и закройте эту страницу.

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

Создание ссылки на страницу регистрации на домашней странице

  1. Переключитесь на страницу Default.aspx или откройте ее.

  2. Щелкните правой кнопкой мыши добавленный ранее элемент управления LoginView и выберите Показать смарт-тег.

  3. На панели Задачи LoginView выберите AnonymousTemplate в списке Представления, чтобы перейти в режим редактирования в анонимном шаблоне.

  4. Из группы Стандартные в Панели элементов перетащите элемент управления HyperLink на анонимный шаблон. Возможно, удобнее будет поместить курсор в область редактирования и дважды щелкнуть элемент управления HyperLink на панели элементов.

  5. В окне Свойства выполните следующие действия для элемента управления HyperLink.

    1. Задайте для свойства Text значение "Регистрация".

    2. Задайте для свойства NavigateUrl значение Register.aspx.

  6. Перейдите к открытой странице Login.aspx.

  7. Из группы Стандартные на панели элементов перетащите на страницу элемент управления HyperLink.

  8. В окне Свойства выполните следующие действия для элемента управления HyperLink.

    1. Задайте для свойства Text значение "Регистрация".

    2. Задайте для свойства NavigateUrl значение Register.aspx.

    Теперь можно проверить работу процесса регистрации.

Проверка работы регистрации

  1. Перейдите к странице Default.aspx или нажмите сочетание клавиш CTRL+F5, чтобы запустить веб-сайт и вывести страницу Default.aspx.

    Поскольку вход в систему не выполнен, отображается ссылка Регистрация.

  2. Щелкните ссылку Регистрация. Отобразится страница регистрации.

  3. В текстовых полях введите новое имя пользователя, надежный пароль, адрес электронной почты и защитные вопрос и ответ. (Все поля являются обязательными.)

  4. Нажмите кнопку Создать пользователя. Отобразится сообщение запроса подтверждения.

  5. Нажмите кнопку Продолжить.

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

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

  7. Щелкните ссылку Вход.

  8. Введите учетные данные только что созданного пользователя. Будет выполнен вход от имени нового пользователя.

  9. Закройте окно браузера.

Пользователю иногда может понадобиться изменить свой пароль, и часто это нецелесообразно делать вручную. Можно использовать другой элемент управления ASP.NET, позволяющий пользователям изменять пароли на свое усмотрение. Чтобы изменить пароль, пользователь должен знать свой текущий пароль.

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

Создание страницы изменения пароля

  1. В обозревателе решений щелкните правой кнопкой мыши папку MemberPages, выберите команду Добавить новый элемент, выберите элемент Форма Web Forms, присвойте ей имя ChangePassword.aspx и нажмите кнопку Добавить.

    Убедитесь, что новая страница создается в папке MemberPages. Страница помещается в папку MemberPages, так как только вошедшие в систему пользователи могут изменять свои пароли.

  2. На странице ChangePassword.aspx переключитесь в представление конструктора и введите текст, например "Смена пароля", отформатировав его как Заголовок 1.

  3. Из группы Вход в систему на панели элементов перетащите на страницу элемент управления ChangePassword.

  4. В окне Свойства элемента управления ChangePassword установите свойство ContinueDestinationPageUrl в ~/Default.aspx.

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

  5. Сохраните и закройте эту страницу.

Создание на домашней странице ссылки на страницу изменения пароля

Теперь можно добавить на домашнюю страницу ссылку на страницу ChangePassword.aspx. Эта ссылка будет доступна только зарегистрированным пользователям.

Создание на домашней странице ссылки на страницу изменения пароля

  1. Переключитесь на страницу Default.aspx или откройте ее.

  2. Щелкните правой кнопкой мыши элемент управления LoginView и выберите команду Показать смарт-тег.

  3. На панели Задачи LoginView в списке Представления выберите LoggedInTemplate.

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

  4. Из группы Стандартные в Панели элементов перетащите элемент управления HyperLink на редактируемую область.

  5. В окне Свойства выполните следующие действия для элемента управления HyperLink.

    1. Задайте для свойства Text значение "Смена пароля".

    2. Задайте для свойства NavigateUrl значение ~/MemberPages/ChangePassword.aspx.

Тестирование страницы смены пароля

Теперь можно проверить работу процесса изменения пароля.

Тестирование страницы смены пароля

  1. Нажмите CTRL+F5, чтобы запустить веб-узел.

  2. На странице Default.aspx щелкните ссылку Вход и войдите в систему в качестве одного из созданных пользователей.

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

  3. Щелкните ссылку Изменить пароль.

  4. На странице изменения пароля введите старый пароль и новый пароль, а затем нажмите Изменить пароль.

  5. Нажмите кнопку Продолжить.

  6. На домашней странице нажмите кнопку Выход.

  7. Щелкните Вход.

  8. Войдите в систему с использованием нового пароля.

  9. Закройте браузер.

Если пользователь забывает свой пароль, с помощью веб-сайта он может восстановить или сбросить пароль. Пароль можно восстановить (т. е. отправить пользователю), если этот пароль не хэширован.

Если пароль хэширован, в системе управления членством фактический пароль не хранится. Вместо этого система обрабатывает пароль с помощью одностороннего алгоритма (алгоритма хэширования), создающего для пароля уникальное значение, которое и сохраняется в системе. Этот алгоритм можно воспроизвести для проверки пароля при входе пользователя, однако его нельзя применить в обратном направлении для воссоздания исходного пароля. Это делает базу данных пользователей более безопасной, поскольку даже в случае получения доступа к базе данных пароли не будут раскрыты.

По умолчанию поставщик членства хранит пароли в виде хэш-значений. Поэтому восстановить пароль невозможно. Вместо этого, если пользователь забудет пароль, веб-сайт должен создать новый пароль и отправить его пользователю по электронной почте. Чтобы веб-сайт мог отправлять сообщения, у компьютера должен быть доступ SMTP-серверу (Simple Mail Transport Protocol).

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

Создание страницы сброса пароля

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта веб-сайта и выберите команду Добавить новый элемент.

  2. Добавьте элемент Форма Web Form, присвойте ему имя PasswordRecovery.aspx и нажмите кнопку Добавить.

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

    Убедитесь, что страница создается в корневом каталоге веб-сайта, а не в папке MemberPages.

  3. На странице PasswordRecovery.aspx переключитесь в представление конструктора и введите текст, например "Забыли пароль", отформатировав его как Заголовок 1.

  4. Из группы Вход в систему на панели элементов перетащите на страницу элемент управления PasswordRecovery.

  5. Откройте страницу Login.aspx или перейдите к ней и откройте представление конструктора.

  6. Из группы Стандартные в Панели элементов перетащите элемент управления HyperLink на страницу.

  7. Задайте для свойства Text значение "Забыли пароль", а для свойства NavigateUrl — значение ~/PasswordRecovery.aspx.

Настройка веб-сайта на использование SMTP-сервера

После этого необходимо настроить веб-сайт на использование SMTP-сервера. Для правильной настройки сервера требуются соответствующие сведения. Если сервер требует проверки подлинности, нужны имя пользователя и пароль. Для получения сведения о настройке обратитесь к системному администратору. После определения способа доступа к SMTP-серверу необходимо настроить веб-сайт на перенаправление сообщений электронной почты на этот сервер. Можно сделать это с помощью средства администрирования веб-сайта или путем создания записи в файле Web.config веб-сайта, который содержит ряд параметров, определяющих способ выполнения приложения. В следующей процедуре показано, как выполнить эту задачу с помощью средства администрирования веб-сайта ASP.NET.

Настройка веб-сайта на использование SMTP-сервера

  1. В меню Веб-узел выберите Конфигурация ASP.NET.

  2. В средстве администрирования веб-сайта перейдите на вкладку Приложение.

  3. В разделе Параметры SMTP щелкните Настройка параметров электронной почты SMTP. Средство отображает страницу, на которой можно настроить электронную почту.

  4. Введите запрашиваемые сведения.

  5. Нажмите кнопку Сохранить и на странице подтверждения выберите OK.

    Средство администрирования веб-сайта создаст файл Web.config, содержащий заданные параметры в разделе mailSettings.

  6. Закройте окно браузера, содержащее средство администрирования веб-сайта.

  7. Откройте файл Web.config.

  8. Проверьте параметры smtp и host у элементов system.net и mailSettings.

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

    Если SMTP-сервер требует защищенного подключения, необходимо задать для атрибута enableSsl значение true. Этот атрибут находится в разделе network элемента smtp файла Web.config.

    Параметры SMTP в файле Web.config будут иметь примерно следующий вид.

    <system.net>
      <mailSettings>
        <smtp from="joe@contoso.com">
            <network host="<server>" password="<password>"   
             userName="joe@contoso.com" enableSsl="true" />
        </smtp>
      </mailSettings>
    </system.net>
    
    Примечание о безопасностиПримечание по безопасности

    Для защиты сведений о конфигурации, например имени пользователя и пароля, ASP.NET может зашифровать фрагмент файла Web.config, в котором хранятся параметры SMTP. Дополнительные сведения см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации. Кроме того, по умолчанию ASP.NET отправляет учетные данные сервера smtp в виде простого текста, который может быть перехвачен программами, фиксирующими сетевую активность. В рабочей среде необходимо с помощью протокола SSL шифровать конфиденциальную информацию, передаваемую на сервер и с сервера.

Тестирование сброса пароля

Теперь можно проверить процесс сброса пароля. После этого для входа будет использоваться новый пароль.

Тестирование страницы сброса пароля

  1. Нажмите CTRL+F5, чтобы запустить веб-узел.

  2. Щелкните Вход.

  3. На странице входа щелкните ссылку Забыли пароль. Введите имя пользователя и нажмите кнопку Отправить.

  4. Введите ответ на защитный вопрос и нажмите кнопку Отправить.

  5. Подождите несколько минут и проверьте электронную почту.

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

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

С помощью методик и элементов управления, показанных в этом пошаговом руководстве, можно создавать более сложные страницы и приложения. Например, можно попробовать выполнить следующие действия:

Показ: