Настройка режима аутентификации для использования аутентификации Windows
Первым шагом к установке режима аутентификации Windows является добавление в файл web.config следующей строки.
<authentication mode="Windows"></authentication>
Это единственное изменение, которое необходимо сделать в файле web.config. Следующим шагом является установка используемого метода аутентификации Windows. Для настройки аутентификации Windows вы будете работать с инструментом администрирования IIS. Он позволит задать аутентификации Windows типа Basic, Digest или Integrated. Данный раздел посвящен использованию настроечных файлов, поэтому я не буду описывать, как настраивать аутентификацию Windows в инструменте администрирования IIS. Об этом подробно говориться в лекции 8.
Первым шагом к установке режима аутентификации Windows является добавление в файл web.config следующей строки.
<authentication mode="Windows"></authentication>
Это единственное изменение, которое необходимо сделать в файле web.config. Следующим шагом является установка используемого метода аутентификации Windows. Для настройки аутентификации Windows вы будете работать с инструментом администрирования IIS. Он позволит задать аутентификации Windows типа Basic, Digest или Integrated. Данный раздел посвящен использованию настроечных файлов, поэтому я не буду описывать, как настраивать аутентификацию Windows в инструменте администрирования IIS. Об этом подробно говориться в лекции 8.
При аутентификации с помощью формы пользователи вводят имя пользователя и пароль для аутентификации в форму 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>.
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.
Clear | Указывает, что пароли хранятся в формате простого текста без шифрования. |
MD5 | Указывает, что пароли сохраняются с помощью алгоритма хеширования MD5. |
SHA1 | Указывает, что пароли сохраняются с помощью алгоритма хеширования SHA1. |
<credentials passwordFormat="MD5"> <user name="user name" password="encrypted password" /> <user name="user name2" password="encrypted password" /> </credentials>
Свойство name – это имя пользователя, а свойство password – зашифрованный пароль пользователя. Вы можете сохранить группу имен пользователей и паролей в разделе <credentials>, а затем сверять их с этой группой из вашего приложения.
Ниже приведен пример элемента <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.
Clear | Указывает, что пароли хранятся в формате простого текста без шифрования. |
MD5 | Указывает, что пароли сохраняются с помощью алгоритма хеширования MD5. |
SHA1 | Указывает, что пароли сохраняются с помощью алгоритма хеширования SHA1. |
<credentials passwordFormat="MD5"> <user name="user name" password="encrypted password" /> <user name="user name2" password="encrypted password" /> </credentials>
Свойство name – это имя пользователя, а свойство password – зашифрованный пароль пользователя. Вы можете сохранить группу имен пользователей и паролей в разделе <credentials>, а затем сверять их с этой группой из вашего приложения.