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

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


Раздел настроек <identity> позволяет настраивать параметры заимствования прав для вашего приложения ASP.NET. Заимствование прав – это способность приложения действовать от имени пользователя при доступе к другим ресурсам. После аутентификации пользователя в IIS его опознавательный признак передается в ASP.NET, где он может использоваться для персонализации пользователя в других ресурсах. Если пользователь не аутентифицирован в IIS, в приложение ASP.NET передается признак отсутствия аутентификации.

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

Ниже показан синтаксис раздела <identity>.

<identity impersonate="true | false" username="domain\username" password="password" />

Свойства раздела < identity > приведены в таблице 4.14.

Таблица 4.14. Свойства <identity>

СвойствоОписание
impersonateОпределяет, включено ли заимствование прав.

true Заимствование прав включено.

false Заимствование прав отключено.

usernameОпределяет имя пользователя, используемое при включенном заимствовании прав.
passwordОпределяет пароль, используемый при включенном заимствовании прав.

Имеется два режима заимствования прав, которые можно использовать в приложении. Первый режим использует имя пользователя и пароль, переданные из IIS, а второй режим – имя пользователя и пароль, указанные в настроечном файле. Ниже приведен пример реализации первого режима заимствования прав.

<identity impersonate="true" />

Такой метод заимствования прав использует любые имя пользователя и пароль, переданные из IIS в среду выполнения ASP.NET. Вот пример реализации второго типа заимствования прав.

<identity impersonate="true" userName="Microsoft\James" password="frequency" />

  1. Когда приложение пытается получить доступ к ресурсу, который требует аутентификации, для аутентификации в этом ресурсе используются указанные здесь имя пользователя и пароль.
    Хранение имени пользователя и пароля в формате простого текста, как в данном случае, ведет к проблемам безопасности. Файл .config защищен от запросов со стороны пользователей и доступ к нему через IIS или любой другой метод, основанный на веб, запрещен. Однако доступ к этим файлам возможен, если у пользователя есть доступ к серверу или заимствованные права на доступ к этому файлу. Имеется возможность хранить имя пользователя и пароль в зашифрованном формате в реестре. Это делается следующим образом. В настроечном файле установите значения имени пользователя и пароля в:

    <identity impersonate="true" userName= "registry:HKLM\Software\AspNetLogin\ASPNET_SETREG,userName" password= "registry:HKLM\Software\AspNetLogin\ASPNET_SETREG,password" />

    Теперь настроечный файл будет считывать значения имени пользователя и пароля из реестра сервера.

  2. Чтобы установить значения в реестре, используйте консольное приложение aspnet_setreg.exe. Это небольшое приложение, которое можно скачать с Microsoft Download Center или напрямую по ссылке http://download.microsoft.com/download/asp.net/Utility/1.0/WIN98MeXP/EN-US/Aspnet_setreg.exe
  3. Распакуйте приложение, откройте командную строку и перейдите в директорию, в которую вы распаковали файлы.
  4. Введите в командной строке следующее: aspnet_setreg –k:Software\AspNetLogin\Identity – u:UserName –p:Password

    Замените AspNetLogin\Identity на тот ключ, который вы хотите использовать. Этот ключ будет создан автоматически. Замените UserName и Password на корректные значения имени пользователя и пароля для вашего приложения.

  5. Найдите ключ в реестре и проверьте, что процесс ASP.NET имеет доступ к этому значению, сделав щелчок правой кнопкой мыши на ключе и выбрав Permissions (Разрешения). Если имя пользователя ASP.NET не указано, добавьте его в список. Прежде чем права доступа вступят в силу, вы должны будете перезапустить процесс IIS.


После этого эти элементы в реестре будут зашифрованы и готовы для доступа из настроечных файлов.


Содержание раздела