Опубликован: 24.01.2007 | Уровень: специалист | Доступ: платный
Лекция 4:

Настроечные параметры System.Web

Аннотация: В данной лекции описываются параметры, доступные в группе разделов <System.Web>. Эта группа содержит большое количество параметров для настройки ASP.NET - и все они рассмотрены здесь. Большую часть своего времени вы потратите, работая именно с этой группой разделов.
Ключевые слова: группа, ASP, net, разделы, веб-приложение, агент пользователя, Глобализация, ISAPI, trust, WebControl, Веб-служба, аутентификация, идентификация пользователя, доступ, пользователь, право доступа, системная группа, приложение, база данных пользователей, Passport, Digest, triple-des, message authentication, timeout, период действия, MD5, хеширование, logon, поиск в базе, строка запроса, собственный метод, интранет, Личность, авторизация, ресурс, запрос, синтаксис, verb, файл, power user, Windows, HTTP, тег, administrator, права доступа, ACL, NTFS, браузер, HTML, определение, значение, вывод, информация, количество информации, программное обеспечение, буфер, HTTP_USER_AGENT, псевдоним, ПО, Internet, элементы управления, ECMAScript, JScript, document object model, alias, batch, explicit, неявное преобразование типа, таблица, delphi, C, COBOL, подключение к базе данных, преобразование типов данных, сообщение об ошибке, список, эксплуатация, логотип, URL, код ошибки, redirection, регистрация в системе, global.asax, кодирование символов, e-culture, запись, UTF-8, UTF-16, REM, реализация интерфейса, защита файлов, IIS, отказ в обслуживании, Visual Studio .Net, модифицируемость, impersonation, имя пользователя, пароль, консольное приложение, permissions, аутентификация данных, ViewState, веб-форма, 3DES, опция, создание веб-страниц, расшифрование, Windows Server, windows 2000, DCOM, дейтаграмма, anonymity, delegation, рабочий процесс, тип события, unavailability, угрозы безопасности, пользовательский процесс, server application, серверное приложение, Ручное тестирование, medium, minimize, уровень доверия, доверие, строка соединения, MMC, параметр, сценарий, system, Web, XML, SOAP

В данной лекции описываются параметры, доступные в группе разделов <System.Web>. Эта группа содержит большое количество параметров для настройки ASP.NET – и все они рассмотрены здесь. Большую часть своего времени вы потратите, работая именно с этой группой разделов. В лекции рассмотрены следующие разделы.

  • <authentication>. Раздел настраивает тип аутентификации, используемой для ваших приложений ASP.NET.
  • <authorization>. Раздел настраивает авторизацию ваших веб-приложений. Авторизация – это процесс определения того, можно ли разрешить пользователю доступ к какому-либо ресурсу.
  • <browserCaps>. Раздел определяет возможности браузера. Для определения типа браузера, используемого для доступа к вашему веб-приложению, служит компонент браузера.
  • <clientTarget>. Раздел, основанный на коллекции, содержит псевдонимы, которые связаны с конкретным агентом пользователя. Эти псевдонимы заставляют страницу отображаться в конкретном браузере.
  • <compilation>. Раздел содержит параметры для настройки компиляции страниц ASP.NET. Используйте его для добавления новых языков программирования, работающих совместно с ASP.NET.
  • <customErrors>. Раздел настраивает сообщения об ошибках, отсылаемые пользователям.
  • <globalization>. Раздел настраивает параметры глобализации сервера или приложения.
  • <httpHandlers>. Раздел настраивает и добавляет обработчики HTTP – классы, которые обрабатывают запросы к различным расширениям файлов.
  • <httpModules>. Раздел настраивает и регистрирует дополнительные модули HTTP. Они используются для выполнения операций HTTP-запроса перед тем, как его обработает обработчик HTTP.
  • <httpRuntime>. Раздел содержит параметры для настройки среды выполнения HTTP.
  • <identity>. Раздел настраивает и реализует заимствование прав для ваших веб-приложений.
  • <machineKey>. Раздел настраивает ключи шифрования, используемые другими разделами.
  • <pages>. Раздел содержит параметры настройки страниц для всех страниц, на которые влияет настроечный файл.
  • <processModel>. Раздел содержит параметры для настройки расширения ISAPI ASP.NET. При работе в Windows Server 2003 этот раздел не используется.
  • <securityPolicy>. Раздел объявляет отображение именованных уровней безопасности на правильные файлы политик безопасности.
  • <sessionState>. Раздел настраивает способ сохранения информации о сессии вашего веб-приложения.
  • <trace>. Раздел настраивает поведение службы трассировки ASP.NET.
  • <trust>. Раздел настраивает уровень безопасности, с которым выполняется приложение.
  • <webControls>. Раздел настраивает место расположения файла сценария проверки на стороне клиента.
  • <webServices>. Раздел содержит параметры настройки веб-службы XML, созданные с помощью ASP.NET.

Работа с разделом <authentication>

Аутентификация – это процесс определения (идентификации) пользователя, который пытается получить доступ к приложению. Аутентификация не определяет, имеет ли пользователь право доступа к данному ресурсу; это делает раздел <authorization> системной группы <System.Web>. Аутентификация только определяет пользователя, чтобы предоставить (или нет) ему доступ к запрошенному ресурсу. Аутентификация играет огромную роль в разработке приложений ASP.NET, и сейчас вы познакомитесь с настройкой метода аутентификации, используемого в ваших приложениях.

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

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

Для настройки аутентификации для вашего приложения вы будете работать с разделом <authentication>, расположенном в группе разделов <System.Web>. Он содержит большое количество параметров и элементов, используемых для настройки аутентификации приложения. В отличие от большинства разделов в <System.Web> его можно использовать только в файле web.config вашего главного приложения; его нельзя настроить для отдельной директории или файла.

Настройка режима аутентификации

Первым шагом в настройке аутентификации приложения является установка режима аутентификации. Для этого используйте свойство mode элемента <authentication>, например:

<authentication mode="authentication mode">
</authentication>

Свойство mode имеет несколько значений, используемых для установки различных режимов аутентификации (см. табл. 4.1).

Таблица 4.1. Значения свойства mode
Свойство Описание
Windows Определяет режим аутентификации Windows и должно использоваться, если аутентификацию пользователя предоставляет Windows.
Forms Определяет режим аутентификации с использованием формы.
Passport Определяет, что для аутентификации пользователей используется Microsoft Passport.
None Устанавливает режим аутентификации в none, то есть аутентификация не используется.
Настройка режима аутентификации для использования аутентификации Windows

Первым шагом к установке режима аутентификации Windows является добавление в файл web.config следующей строки.

<authentication mode="Windows"></authentication>

Это единственное изменение, которое необходимо сделать в файле web.config. Следующим шагом является установка используемого метода аутентификации Windows. Для настройки аутентификации Windows вы будете работать с инструментом администрирования IIS. Он позволит задать аутентификации Windows типа Basic, Digest или Integrated. Данный раздел посвящен использованию настроечных файлов, поэтому я не буду описывать, как настраивать аутентификацию Windows в инструменте администрирования IIS. Об этом подробно говорится в "Параметры IIS" .

Настройка режима аутентификации для аутентификации с помощью формы

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

<authentication mode="Forms"></authentication>

Следующий шаг включает новый элемент, который используется в разделе <authentication> – элемент <forms>. Он содержит свойства, которые следует настроить, прежде чем использовать аутентификацию с помощью формы. Данные параметры настраивают cookie аутентификации, который проверяет пользователя, например:

<authentication mode="Forms">
  <forms name="cookie name" loginUrl="url of form" protection=
    "level of protection" timeout="cookie timeout"
    path="cookie path" requireSSL="true | false"
    slidingExpiration="true | false">
  </forms>
</authentication>

Таблица 4.2 содержит перечень свойств, описаний и возможных значений элемента <forms>.

Таблица 4.2. Свойства <forms>
Имя свойства Описание
name Имя cookie, используемого для аутентификации. Значением по умолчанию является .ASPXAUTH, но если на одном веб-сервере выполняется несколько приложений, то следует настроить это значение так, чтобы для каждого приложения использовался свой cookie.
loginUrl URL страницы, которая содержит информацию для входа на ваш сайт. При попытке доступа неопознанного пользователя его запросы будут перенаправляться на указанную страницу. Значением по умолчанию является default.aspx.
protection

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

All Указывает, что cookie должен использовать проверку данных и шифрование – это значение по умолчанию.

None Указывает, что для cookies отключены проверка данных и шифрование. Целесообразно использовать, если cookies не особенно важны для приложения, а применяются только для настройки внешнего вида сайта.

Encryption Указывает, что cookie будет зашифрован с помощью алгоритма Triple-DES или DES, но для него не будет выполняться проверка данных.

Validation Указывает, что cookie будет проверяться на предмет того, не изменилось ли его содержимое в процессе передачи. Сookie создается путем конкатенации проверочного ключа и данных cookie, вычисления кода аутентификации сообщения (message authentication code – MAC) и добавления этого MAC в cookie. Это защитное значение гарантирует, что в информацию не было произведено вмешательства, и защита сайта не будет нарушена.

timeout Указывает время в минутах, через которое истекает срок действия аутентификационного cookie.
path Указывает путь, используемый для cookie аутентификации – по умолчанию " / ".
requireSSL

Указывает, требуется ли для передачи cookie использование SSL. Возможными значениями являются:

true Указывает, что требуется SSL.

false Указывает, что SSL не требуется (значение по умолчанию).

slidingExpiration

Указывает, включен ли "сдвигающийся" период времени действия cookie. Такой период действия сбрасывает счетчик времени действия cookie при каждом обращении к приложению. Если cookie устаревает за 10 минут, а сдвигающийся период действия не включен, то cookie устареет через 10 минут после первого доступа. Если задействован сдвигающийся период действия, то cookie будет устаревать через 10 минут после последнего запроса к приложению.

true Указывает, что сдвигающийся период времени действия включен.

false Указывает, что сдвигающийся период времени действия отключен (значение по умолчанию). Данное свойство появилось в ASP.NET версии 1.1.

Ниже приведен пример элемента <forms>.

<authentication mode="Forms">
  <forms name=".SiteCookie" loginUrl="login.aspx" protection ="All"
    timeout="30" path="/" requireSSL="false"
    slidingExpiration="true">
  </forms>
</authentication>

В этом примере имя cookie устанавливается равным .SiteCookie, URL страницы входа в значение – login.aspx, а уровень защиты – all. Установка уровня защиты в значение all означает, что cookie будет защищен как при помощи проверки данных, так и с помощью шифрования. Время истечения действия cookie устанавливается в 30 минут, путь равен " / ", и SSL не требуется. Сдвигающееся время действия установлено в значение true, то есть при каждом запросе время действия cookie будет отсчитываться заново.

Пример из практики. Значение времени действия cookie – это очень важное значение. Нет ничего более разочаровывающего, чем заполнение очень длинной формы и передача ее только для того, чтобы обнаружить, что ваш cookie устарел и информация будет потеряна. Убедитесь, что время действия достаточно продолжительно, либо разбейте длинные формы на несколько страниц.

Прежде чем перейти к обсуждению того, как встраивать аутентификацию с помощью формы в приложение, давайте рассмотрим субэлемент <credentials>.

Субэлемент <credentials> элемента <forms> содержит список имен пользователей и паролей, используемых для аутентификации пользователей. Это не единственная возможность создания списка имен пользователей и паролей, но она является самым простым методом и полезна для сайтов с небольшим и редко меняющимся списком пользователей и паролей. Чтобы использовать раздел <credentials>, сначала установите свойство passwordFormat элемента <credentials>, например:

<credentials passwordFormat="encryption method">
</credentials>

Таблица 4.3 содержит список доступных значений свойства passwordFormat.

Таблица 4.3. Табл. 4.3. Значения passwordFormat
Значение Описание
Clear Указывает, что пароли хранятся в формате простого текста без шифрования.
MD5 Указывает, что пароли сохраняются с помощью алгоритма хеширования MD5.
SHA1 Указывает, что пароли сохраняются с помощью алгоритма хеширования SHA1.

После указания метода сохранения паролей, пары имен пользователей и паролей можно сохранить раздел <credentials> с помощью элемента <user>, например:

<credentials passwordFormat="MD5">
  <user name="user name" password="encrypted password" />
  <user name="user name2" password="encrypted password" />
</credentials>

Свойство name – это имя пользователя, а свойство password – зашифрованный пароль пользователя. Вы можете сохранить группу имен пользователей и паролей в разделе <credentials>, а затем сверять их с этой группой из вашего приложения.

Геннадий Щербаков
Геннадий Щербаков

В начале года получил код dreamspark  H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При  его вводе- сообщение что он просрочен.