Поделиться через


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

Обновлен: Ноябрь 2007

Многие приложения ASP.NET используют членство — проверку подлинности пользователей, чтобы они могли иметь доступ к ресурсам с ограниченным доступом, например, страницы "только для членов". Если приложение поддерживает множество пользователей или список пользователей изменяется в течение времени, то стоит назначить роли для управления доступом пользователей. Роль — это имя группы, такой как менеджеры, продавцы или члены. После назначения ролей к ним можно приписывать отдельных пользователей. Затем можно предоставить разрешения роли, и каждый пользователь с данной ролью наследует предоставленные разрешения. Таким образом, роли являются эффективным путем управления разрешениями для групп пользователей.

В процессе выполнения этого пошагового руководства вы научитесь:

  • Назначать роли для приложения.

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

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

  • Определять программным путем принадлежности пользователя к данной роли и к каким ролям данный пользователь относится.

Обязательные компоненты

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

  • Visual Studio.

  • Платформа .NET Framework.

  • Службы IIS, установленные на локальном компьютере.

  • Службы SQL Server, экспресс-выпуск, установленные на локальном компьютере.

  • Способ идентификации отдельного пользователя.

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

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

Настройка веб-узла, членства и ролей

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

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

Создание локального веб-узла IIS

  1. Запустите Visual Studio.

  2. В меню Файл выберите Создать, Веб-узел.

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

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

  4. Из списка Расположение выберите Файловая система.

  5. Нажмите кнопку Обзор и выберите каталог для приложения, например, C:\RolesWebSite.

  6. В списке Язык выберите язык программирования, с которым вы предпочитаете работать.

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

  7. В диалоговом окне Создать веб-узел нажмите ОК.

    Visual Web Developer создаст веб-узел и новую страницу с именем Default.aspx.

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

Чтобы работать с ролями, необходимо создать две папки: MemberPages и GuestPages, в которых можно хранить страницы с ограниченным доступом.

t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

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

Создание папок для ограниченного доступа

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

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

  2. Щелкните правой кнопкой мыши корневой каталог веб-узла, выберите пункт Создать папку, а затем назовите папку GuestPages.

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

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

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

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

  1. В меню Веб-узел выберите Настройка ASP.NET.

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

  3. Перейдите к шагу 2 мастера и выберите параметр Из сети Интернет.

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

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

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

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

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

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

  7. При запросе создайте две роли: Член и Гость, и нажмите кнопку Далее.

  8. В Шаге 5. Добавление новых пользователей создайте три пользователя с именами member1, guest1 и memberGuest.

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

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

  2. В окне Выбор каталога для правила разверните корневой каталог и выберите GuestPages.

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

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

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

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

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

  6. В окне Выбор каталога для правила выберите MemberPages.

  7. В группе Правило применяется к выберите Роль, и в раскрывающемся списке выберите Член.

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

    Создаваемое правило предоставляет право доступа к папке MemberPages всем пользователям с ролью Члена.

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

  10. В окне Выбор каталога для правила выберите MemberPages.

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

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

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

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

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

  14. Чтобы вернуться на вкладку Безопасность, нажмите кнопку Готово.

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

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

Назначение пользователям ролей

Теперь необходимо выполнить последний шаг настройки: назначить созданным пользователям роли.

Назначение пользователям ролей

  1. Во вкладке Безопасность средства администрирования веб-узла в меню Пользователи выберите Управление пользователями.

  2. В строке для пользователя guest1 выберите Изменить роли.

    В списке Роли перечислены все доступные роли.

  3. Установите флажок Гость, чтобы назначить пользователю guest1 роль Гостя.

  4. В строке для пользователя member1 выберите Изменить роли, и назначьте пользователю member1 роль Члена.

  5. Таким же способом назначьте пользователю memberGuest обе роли: Гость и Член.

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

    1. В обозревателе решений щелкните значок обновления.

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

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

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

Добавление страниц с ограниченным доступом

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

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

  1. Перейдите в Visual Studio.

  2. Откройте страницу Default.aspx или переключитесь на нее, а затем переключитесь в представление конструирования.

    Если страница Default.aspx отсутствует, добавьте ее в корень веб-узла.

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

    Имя страницы обязательно должно быть Default.aspx, так как это имя используется далее в пошаговом руководстве.

  3. Добавьте заголовок с текстом, например, Добро пожаловать!

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

    При нажатии элемента управления LoginStatus пользователи переходят на страницу Login.aspx, если они до этого не выполнили вход.

  5. Из группы Вход в Панели элементов перетащите на страницу элемент управления LoginName. Присвойте свойству FormatString значение "Здравствуйте, {0}."

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

  6. Из группы Стандартные в Панели элементов перетащите на страницу элемент управления HyperLink. В панели Свойства элемента управления HyperLink присвойте свойству Text значение Гости и члены, а свойству href значение ~/GuestPages/Guests.aspx.

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

    Страница Guests.aspx будет создаваться позже в этом пошаговом руководстве.

  7. Из группы Стандартные в Панели элементов перетащите на страницу еще один элемент управления HyperLink. В панели Свойства элемента управления HyperLink присвойте свойству Text значение Члены, а свойству href значение ~/MemberPages/Members.aspx.

    t32yf0a9.alert_note(ru-ru,VS.90).gifПримечание.

    Страница Members.aspx будет создаваться позже в этом пошаговом руководстве.

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

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

  1. В Обозревателе решений щелкните правой кнопкой мыши корневой каталог веб-узла и нажмите кнопку Добавить новый элемент. Добавьте Форму Web Form с именем Login.aspx на веб-узел.

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

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

  4. В панели Свойства элемента управления Login присвойте свойству DestinationPageUrl значение ~/Default.aspx.

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

Создание страниц с ограниченным доступом

  1. В Обозревателе решений щелкните правой кнопкой мыши папку GuestPages, затем выберите Добавление нового элемента и добавьте в папку новую Веб-форму с именем Guests.aspx.

  2. Переключитесь в представление Конструктора и добавьте заголовок на страницу Guests.aspx, например, Добро пожаловать на гостевую страницу!

  3. Из группы Стандартные в Панели элементов перетащите на страницу элемент управления HyperLink. В панели Свойства элемента управления HyperLink присвойте свойству Text значение Домашняя страница, а свойству href значение ~/Default.aspx.

  4. В Обозревателе решений щелкните правой кнопкой мыши папку MemberPages, затем выберите Добавление нового элемента и добавьте новую Веб-форму с именем Members.aspx .

  5. Переключитесь в представление конструирования и добавьте заголовок на страницу Members.aspx, например, Добро пожаловать на членскую страницу!

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

  7. В панели Свойства элемента управления HyperLink присвойте свойству Text значение Домашняя страница, а свойству href значение ~/Default.aspx.

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

Проверка ролей

Теперь веб-узел готов к тестированию.

Проверка ролей

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

  2. Щелкните Гости и члены.

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

  3. Войдите как пользователь guest1, который имеет роль Гостя.

    После успешного входа вы будете перенаправлены на страницу Guests.aspx.

    Нажмите кнопку Домашняя страница, чтобы вернуться на страницу Default.aspx.

    На странице Default.aspx отображается текст Здравствуйте, guest1, где был установлен элемент управления LoginName. Кроме того, элемент управления LoginStatus изменил текст с Вход на Выход, так как вы вошли как пользователь guest1.

  4. Щелкните Гости и члены.

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

  5. Нажмите кнопку Домашняя страница, чтобы вернуться на страницу Default.aspx.

  6. Щелкните Члены.

    Вы будете перенаправлены на страницу Login.aspx, так как пользователь guest1 не имеет разрешения для доступа к странице Members.aspx.

  7. Выполните вход как пользователь member1 или memberGuest.

    Вы будете перенаправлены на страницу Members.aspx, так как вы вошли как пользователь с ролью Члена.

  8. Нажмите кнопку Домашняя страница, чтобы вернуться на страницу Default.aspx.

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

Следующие действия

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

См. также

Задачи

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

Пошаговое руководство. Фильтрация узлов карты веб-узла на основе ролей безопасности

Основные понятия

Основные сведения об управлении ролями

Ссылки

AuthorizationSection