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

Параметры IIS

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >

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

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

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

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

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

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

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

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

Вы можете определить права пользователя, прошедшего аутентификацию в 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 (Администраторы).

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

  • Вы можете включить поддержку 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.
< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Геннадий Щербаков
Геннадий Щербаков

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