Конфигурирование и настройка Microsoft ASP.NET

         

Использование аутентификации Windows


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

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

Это единственное изменение, которое должно быть сделано в файле web.config приложения. Ниже показаны шаги для использования аутентификации Windows.

В диспетчере IIS щелкните правой кнопкой мыши на приложении, затем – на Properties (Свойства).Щелкните на вкладке Directory Security (Безопасность каталога).В области Authentication And Access Control (Аутентификация и управление доступом) щелкните на кнопке Edit (Изменить).Снимите флажок Enable Anonymous Access (Разрешить анонимный доступ). Это укажет, что перед доступом к приложению пользователи должны пройти процедуру аутентификации.Установите флажок для используемого метода аутентификации, как показано на рис. 8.10.


Рис. 8.10.  Параметры аутентификации Windows

Для этого типа аутентификации вам не требуется добавлять в приложение никакого кода, так как она выполняется силами IIS.



Ключевые моменты


Вы можете включить поддержку ASP.NET в Windows Server 2003, добавив роль Application Server либо включив расширение веб-службы ASP.NET.Для установки и регистрации ASP.NET в IIS, если ASP.NET не зарегистрирована в IIS для Windows Server 2003 или Windows 2000 Server, используется утилита aspnet_regiis.Пулы приложений могут изолировать группу приложений, использующих одни и те же рабочие процессы и настройки процессов.Если вы не используете VS.NET, приложения должны создаваться с помощью инструмента администрирования IIS.Для определения имени пользователя и роли пользователя, получающего доступ к вашему приложению, применяется объект WindowsPrincipal.



Настройка пулов приложений


Пулы приложений имеют большое количество параметров для настройки поведения рабочих процессов пула. Чтобы получить доступ к этим параметрам, щелкните правой кнопкой мыши на пуле приложений и выберите пункт Properties (Свойства). Появится диалоговое окно Default AppPool Properties (Свойства AppPool по умолчанию), показанное на рис. 8.5.


Рис. 8.5.  Вкладка Recycling (Перезапуск) диалогового окна свойств пула приложений

Данная вкладка содержит параметры, управляющие "переработкой" рабочих процессов (см. табл. 8.1).

Таблица 8.1. Параметры вкладки Recycling (Перезапуск)

ПараметрОписание
Recycle worker processes (in minutes) (Перезапускать рабочие процессы через [мин]) Указывает, что рабочие процессы будут автоматически очищаться каждые Х минут, где Х – число, введенное в текстовом поле.
Recycle worker process (number of requests) (Перезапускать рабочие процессы [число запросов])Указывает, что каждый рабочий процесс будет автоматически очищаться после того, как обработает Х запросов, где Х – число запросов, введенное в текстовом поле.
Recycle worker processes at the following times (Перезапускать рабочие процессы в указанное время)Указывает, что рабочие процессы будут автоматически очищаться при наступлении заданного в текстовом поле времени. Это очень полезно, если вы знаете, когда ожидается снижение нагрузки на ваше приложение, чтобы рабочий процесс был очищен, не создавая при этом неудобств пользователям.
Maximum virtual memory (in megabytes) (Максимальное количество виртуальной памяти, в Мб)Указывает, что каждый рабочий процесс, использующий виртуальной памяти больше заданного здесь значения, будет автоматически очищен.
Maximum used memory (in megabytes) (Максимальный размер используемой памяти, в Мб)Указывает, что каждый рабочий процесс, использующий физической памяти больше заданного здесь значения, будет автоматически очищен.

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


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

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

Вкладка Health (Работоспособность) диалогового окна свойств пула приложений содержит параметры, относящиеся к состоянию рабочего процесса (рис. 8.7).


Рис. 8.6.  Вкладка Performance (Производительность)

диалогового окна свойств пула приложений


Рис. 8.7.  Вкладка Health (Работоспособность) диалогового окна свойств пула приложений



В табл. 8. 3 содержится перечень параметров вкладки Health (Работоспособность).

Таблица 8.3. Параметры вкладки Health (Работоспособность)ПараметрОписание
Enable pinging – Ping worker process every (frequency in seconds) (Включить применение команды ping – опрашивать рабочий процесс каждые [частота в секундах])Указывает, что каждый рабочий процесс будет опрашиваться каждые Х секунд, где Х – число, введенное в текстовом поле.Позволяет определить, насколько корректно работает рабочий процесс и не заблокирован ли он.
Enable rapidfail protection – Disable the application pool if there are a certain number of worker process failures within a specified time period (Включить защиту от частых сбоев – отключить пул приложений, если имеется определенное количество сбоев рабочего процесса за указанный интервал времени)Останавливает пул приложений, если за указанный период времени рабочие процессы сбиваются Х раз. Х – это значение, указанное в поле Failures (Сбои); количество времени указано в поле Time Period (Период времени). Если несколько рабочих процессов дают несколько сбоев подряд, логично предположить, что на сервере или в приложении возникла какаято крупная проблема.
Startup time limit – Worker process must startup within (time in seconds) (Ограничить время запуска – рабочий процесс должен запуститься за [время в секундах])Указывает количество времени, которое отпущено рабочему процессу на запуск, перед тем как этот процесс будет остановлен и запустится другой.
Shutdown time limit – Worker process must shutdown within (time in seconds) (Ограничить время остановки – рабочий процесс должен остановиться за [время в секундах])Указывает количество времени, в течение которого рабочий процесс должен остановиться самостоятельно перед принудительным завершением.
Параметры состояния управляют рабочими процессами и гарантируют, что заблокированные или не отвечающие рабочие процессы будут остановлены.

Вкладка Identity (Права доступа) настраивает права доступа, используемые при запуске рабочего процесса (рис. 8.8).






Рис. 8.8.  Вкладка Identity ( Права доступа) диалогового окна свойств пула приложений

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

Таблица 8.4. Учетные записи прав доступаУчетная записьОписание
Network Service (Сетевая служба)Является записью по умолчанию; имеет ограниченные права доступа как к локальной системе, так и к сетевым ресурсам.
Local Service (Локальная служба)Является самой низкоуровневой учетной записью из всех встроенных записей; в отличие от записи Network Service имеет права пользователя только для локальной системы.
Local System (Локальная система)Является самой высокоуровневой учетной записью из всех встроенных записей; имеет полный доступ ко всей системе.
Вы также можете использовать учетные записи IUSR_computername, IWAM_computername и ASPNET, указав их в поле Configurable (Настройка) вкладки Identity (Права доступа).


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


Вы можете определить права пользователя, прошедшего аутентификацию в IIS, используя объект WindowsPrincipal. Этот объект присоединяется к каждому запросу, который использует аутентификацию Windows. Он используется для получения имени пользователя и определяет, является ли пользователь частью какой-либо роли. Ниже приведен пример кода, который получает имя пользователя и проверяет, принадлежит ли пользователь группе Administrators (Администраторы).

C#

WindowsPrincipal wpMain = new WindowsPrincipal(WindowsIdentity.GetCurrent()); string sUserName = wpMain.Identity.Name; bool bAdmin = wpMain.IsInRole("Administrators");

VB.NET

Dim wpMain As New WindowsPrincipal(WindowsIdentity.GetCurrent()) Dim sUserName As String = wpMain.Identity.Name Dim bAdmin As Boolean = wpMain.IsInRole("Administrators")

Первая строка этого кода создает новый экземпляр класса WindowsPrincipal, основанный на пользователе, работающем в системе. Вторая строка при помощи объекта Identity и свойства name получает имя этого пользователя. Последняя строка с помощью метода IsInRole получает логическое значение, которое указывает, является ли пользователь частью группы Administrators (Администраторы).



Работа с пулами приложений


Пулы приложений – это новая функция Windows Server 2003, которая изолирует группу приложений в рамках общего набора рабочих процессов и параметров. Изолируя приложения в пулы приложений, вы можете перезапускать рабочие процессы, не влияя на другие пулы приложений сервера. Вместо настройки параметров в разделе <processModel> файла machine.config вы будете настраивать их в каждом пуле приложений сервера.



Создание нового приложения


Для создания новых веб-приложений следует использовать инструмент администрирования IIS. Если при создании нового веб-проекта используется Microsoft Visual Studio .NET, этот шаг выполняется автоматически, но при использовании инструмента, отличного от VS.NET, нужно создать эти приложения вручную. Ниже приведена процедура добавления к серверу нового веб-приложения.

В левой панели диспетчера IIS щелкните на веб-сайте или поддиректории веб-сайта, в которой вы хотите разместить свое приложение.В меню Action (Действие) выберите пункт New (Создать), а затем щелкните на Virtual Directory (Виртуальный каталог). Затем щелкните Next (Далее).Введите псевдоним, используемый для виртуального каталога, и щелкните Next.Укажите физический каталог для этого приложения.Выберите действия, выполнение которых нужно разрешить с вашим приложением, затем щелкните Next. Для приложения ASP.NET вполне подходят установки по умолчанию.Щелкните Finish (Готово).

Будет создан виртуальный каталог, помеченный как приложение, и этот каталог будет добавлен в пул приложений по умолчанию. Чтобы изменить пул приложений, частью которого является это приложение, нужно получить доступ к свойствам приложения. Для этого щелкните правой кнопкой мыши на приложении, а затем – на Properties (Свойства). Выберите пул приложений для своего приложения. На рисунке 8.9 показано диалоговое окно свойств приложения 1.


Рис. 8.9.  Диалоговое окно свойств приложения 1



Управление пулами приложений


Для быстрого создания и удаления пулов приложений на сервере используйте инструмент администрирования IIS. Ниже приведена процедура добавления к серверу нового пула приложений.

Щелкните правой кнопкой мыши на директории Application Pool.Щелкните на New (Создать), а затем на Application Pool (Пул приложений).Укажите имя пула приложений и выберите вариант создания с параметрами по умолчанию или использование в качестве шаблона другого пула приложений, как показано на рис. 8.4.


Рис. 8.4.  Введите имя пула приложений и выберите параметры по умолчанию

Щелкните OK.

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



Утилита установки ASP.NET IIS


Существует специальная небольшая утилита для установки ASP.NET в IIS для Windows 2000 Server и Windows Server 2003. Для ее использования перейдите в папку C:\%winndir%\ Microsoft.NET\Framework\v1.1.4322.

Затем введите aspnet_regiis –i. Эта команда установит в IIS фильтр ASP.NET ISAPI и все соответствия. Имеется и другие ключи, используемые с утилитой aspnet_regiis. Чтобы увидеть список этих ключей, введите aspnet_regiis -?.



Включение поддержки ASP.NET


В Windows 2000 Server для доступа к ASP.NET нужно установить на вашем сервере Microsoft .NET Framework. Так как в Windows Server 2003 уже содержится .NET Framework, требуется только включить поддержку ASP.NET на сервере. Простейшим способом сделать это является использование мастера настройки сервера (Configure Your Server Wizard) и назначение роли сервера приложений. Добавление этой роли установит среди прочего IIS, ASP.NET, ASP и COM+.

Откройте мастер настройки сервера (Configure Your Server Wizard).Щелкните Next (Далее) на вводной странице.В списке Server Role (Роль сервера) выберите Application Server (Сервер приложений) и щелкните Next, как показано на рис. 8.1.Установите флажок Enable ASP.NET (Включить ASP.NET) и, если требуется, флажок FrontPage Server Extensions (Серверные расширения FrontPage), а затем щелкните на Next, как показано на рис. 8.2.Щелкните Next в итоговом окне.Щелкните Finish (Готово), чтобы установить IIS с активизированной ASP.NET.


Рис. 8.1.  Выбор роли сервера приложений


Рис. 8.2.  Установка флажка Enable ASP.NET (Включить ASP.NET)

Если IIS на вашем сервере уже установлен, а ASP.NET не активизирована, то ниже показан простой способ включить ASP.NET без использования мастера настройки сервера.

Откройте инструмент администрирования IIS.Щелкните на значке папки Web Services Extensions.В списке Web Service Extension щелкните на ASP.NET, как показано на рис. 8.3.


Рис. 8.3.  Выбор расширения ASP.NET из списка

Щелкните на кнопке Allow (Разрешить).

После этого ASP.NET будет установлена и готова к работе.