Пользователи и роли на рабочем веб-C#сайте ()

по Скотт Митчелл

Скачать в формате PDF

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

Введение

В ASP.NET 2,0 появился ряд служб приложений, которые представляют собой набор стандартных блочных служб, которые можно добавить в веб-приложение. Мы добавили службы членства и ролей на веб-сайт рецензирования книги обратно в настройке веб-сайта, который использует службы приложений учебник. Служба членства упрощает создание учетных записей пользователей и управление ими; Служба ролей предоставляет API для категоризации пользователей по группам. На сайте обзоры книг есть три учетных записи пользователей — Скотт, Цзисунь и Алиса — и одна роль (администратор) с Скотт и Цзисунь в роли администратора.

Сценарии. Службы приложений NET не привязаны к определенной реализации. Вместо этого вы указываете службам приложений на использование определенного поставщика, и этот поставщик реализует службу с помощью определенной технологии. Мы настроили веб-приложение "Рецензирование книги" для использования поставщиков SqlMembershipProvider и SqlRoleProvider для служб членства и ролей. Эти два поставщика хранят учетную запись пользователя и сведения о ролях в базе данных SQL Server и являются наиболее часто используемыми поставщиками для веб-приложений, размещенных в компании, на которой размещены веб-приложения.

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

Использование средства администрирования веб-сайта ASP.NET

ASP.NET включает средство администрирования веб-сайтов (WSAT), которое упрощает создание учетных записей пользователей и ролей и управление ими, а также определение правил авторизации на основе ролей и пользователей. Чтобы использовать WSAT, щелкните значок конфигурации ASP.NET на обозреватель решений или перейдите в меню веб-сайт или проект и выберите параметр конфигурации ASP.NET. Любой из этих подходов запускает веб-браузер и указывает на WSAT по адресу, например: http://localhost:portNumber/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=pathToApplication

WSAT состоит из трех разделов:

  • Безопасность — Управление пользователями, ролями и правилами авторизации.
  • Аппликатионконфигуратион — управление параметрами> <APPSETTINGS и SMTP. Вы также можете перевести приложение в автономный режим и управлять параметрами отладки и трассировки, а также задать настраиваемую страницу ошибки по умолчанию.
  • Провидерконфигуратион — Настройка поставщиков, используемых службами приложений.

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

Рис. 1. раздел безопасности WSAT включает параметры для управления пользователями и ролями
(Щелкните, чтобы просмотреть изображение с полным размером)

К сожалению, WSAT доступен только локально. Вы не можете посетить WSAT на удаленном рабочем веб-сайте; Если вы посещаете www.yoursite.com/asp.netwebadminfiles/default.aspx вы получаете ответ 404 не найден. Код, который выполняет WSAT, использует классы Membership и Roles в .NET Framework для создания, изменения и удаления пользователей и ролей. Эти классы обращаются к сведениям о конфигурации веб-приложения, чтобы определить, какой поставщик следует использовать. Вернитесь к настройке веб-сайта, в котором используется службы приложений учебник по настройке веб-сайта проверки книги для использования поставщиков SqlMembershipProvider и SqlRoleProvider. Это влечет за собой добавление <membership> и <roleManager> разделов в Web.config.

<?xml version="1.0"?>
<configuration>
  ...

  <connectionStrings configSource="ConfigSections\databaseConnectionStrings.config" />

  <system.web>
  ...

  <membership defaultProvider="ReviewMembership">
  <providers>
  <clear />

  <add type="System.Web.Security.SqlMembershipProvider" 
  name="ReviewMembership" 
  connectionStringName="ReviewsConnectionString" 
  applicationName="BookReviews" />
  </providers>
  </membership>

  <roleManager enabled="true" defaultProvider="ReviewRole">
  <providers>
  <clear />

  <add type="System.Web.Security.SqlRoleProvider" 
  name="ReviewRole" 
  connectionStringName="ReviewsConnectionString" 
  applicationName="BookReviews" />
  </providers>
  </roleManager>
  </system.web>

  ...
</configuration>

Обратите внимание, что разделы <membership> и <roleManager> ссылаются на поставщиков SqlMembershipProvider и SqlRoleProvider в атрибуте type соответственно. Эти поставщики хранят сведения о пользователях и ролях в указанной SQL Server базе данных. База данных, используемая этими поставщиками, задается атрибутом connectionStringName ReviewsConnectionString, который определен в файле ~/ConfigSections/databaseConnectionStrings.config. Помните, что файл databaseConnectionStrings.config в среде разработки содержит строку подключения к базе данных разработки, а databaseConnectionStrings.config файл в рабочей среде содержит строку подключения к рабочей базе данных.

В двух словах, WSAT должен быть доступен локально через среду разработки и работает с данными о пользователях и ролях в базе данных, указанной в файле databaseConnectionStrings.config. Следовательно, если изменить данные строки подключения в файле databaseConnectionStrings.config в среде разработки, можно использовать WSAT локально для управления пользователями и ролями в рабочей среде.

Чтобы продемонстрировать эту функциональность, откройте файл databaseConnectionStrings.config в Visual Studio в среде разработки и замените строку подключения к базе данных разработки строкой подключения к рабочей базе данных. Затем запустите WSAT, перейдите на вкладку Безопасность и добавьте нового пользователя с именем SAM и паролем!. (меньше кавычек). На рис. 2 ПОКАЗАН экран WSAT при создании этой учетной записи.

Рис. 2. Создание нового пользователя с именем SAM в рабочей среде
(Щелкните, чтобы просмотреть изображение с полным размером)

Так как мы изменили строку подключения в databaseConnectionStrings.config, чтобы она указывала на сервер рабочей базы данных, администратор добавил в рабочую среду в качестве пользователя. Чтобы проверить это, измените строку подключения в файле databaseConnectionStrings.config обратно на базу данных разработки, а затем перейдите на страницу Login.aspx в среде разработки. Попробуйте войти как SAM (см. рис. 3).

Рис. 3. невозможно войти в систему как SAM в среде разработки
(Щелкните, чтобы просмотреть изображение с полным размером)

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

Рисунок 4. SAM может войти на рабочий веб-сайт
(Щелкните, чтобы просмотреть изображение с полным размером)

Note

Не забудьте изменить строку подключения в файле databaseConnectionStrings.config обратно на строку подключения базы данных разработки после завершения работы с WSAT. в противном случае вы будете работать с рабочими данными при тестировании сайта в среде разработки. Также следует помнить, что хотя методика, которую мы только что обсуждали, позволяет использовать WSAT для удаленного управления пользователями и ролями, изменения любых других параметров конфигурации WSAT (правила доступа, параметры SMTP, параметры отладки и трассировки и т. д.) изменяют файл Web.config. Следовательно, любые изменения параметров применяются к среде разработки, а не к рабочей среде.

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

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

ASP.NET включает ряд встроенных веб-элементов управления, связанных с входом, которые позволяют реализовать многие из этих административных веб-страниц так же просто, как перетаскивание. Например, можно создать страницу для администраторов, чтобы создать новую учетную запись пользователя, перетащив элемент управления CreateUserWizard на страницу и задав несколько свойств. На самом деле, страница для создания пользователей в WSAT, показанная на рис. 2 , использует тот же элемент управления CreateUserWizard, который можно добавить на страницы. Более того, функциональные возможности служб членства и ролей доступны программно с помощью классов Membership и Roles в .NET Framework. С помощью этих классов можно написать код для создания, изменения и удаления пользователей и ролей, а также для добавления или удаления пользователей в ролях, для определения того, какие пользователи находятся в ролях, а также для выполнения других задач, связанных с пользователями и ролями.

В настройке веб-сайта, использующего службы приложений учебник, я добавил страницу в папку Admin с именем CreateAccount.aspx. Эта страница позволяет администратору добавить новую учетную запись пользователя на сайт и указать, является ли созданный пользователь ролью администратора (см. рис. 5).

Рис. 5. Администраторы могут создавать новые учетные записи пользователей
(Щелкните, чтобы просмотреть изображение с полным размером)

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

Для реализации WSAT функций на рабочем веб-сайте всегда можно создать собственный ряд веб-страниц, реализующих функции WSAT. Чтобы приступить к работе, ознакомьтесь с исходным кодом WSAT, который находится в папке %WINDIR%\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles. Другой вариант — использовать альтернативу WSAT для Клем, который он использует в своей статье, чтобы выполнить развертывание собственного средства администрирования веб-сайта. Самое время познакомит читателей с процессом создания настраиваемого инструмента WSAT, включающего его исходный код приложения (в C#) и предоставляющий пошаговые инструкции по добавлению пользовательского WSAT на размещенный веб-сайт.

Сводка

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

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

Поздравляем с программированием!

Дополнительные материалы

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