Программирование в IIS

Безопасность ASP.NET


При загрузке страницы showGrid.aspx фиксируется событие Load и вызывается функция LoadGrid. При вызове функции LoadGrid устанавливается подключение к базе данных посредством строковой переменной и инициализируется объект подключения ADO Connection.

Примечание. Следует отметить, что указывать символьные аргументы строки подключения в коде, как в листинге 2.10, крайне не рекомендуется. Это сделано, чтобы показать аутентификационные данные, используемые для подключения, а также метод их применения к объекту Connection. Рекомендуем получать аутентификационные данные, размещая строки подключения к базе данных в файле web.config (см. лекции 3).

В листинге 2.10 используется источник данных Microsoft Access 2000. Чтобы веб-форма ASP.NET могла считывать и записывать информацию в файл базы данных Access, необходимо настроить файловые разрешения сервера для файлов данных Access (.mdb). При использовании базы данных корпоративного уровня, например, SQL Server или Oracle, для передачи аутентификационных данных серверу базы данных при ее запросе веб-формой ASP.NET возможно применение интегрированной безопасности. Аргумент integrated security=sspi в строке подключения к базе данных указывает использование интегрированной безопасности, и аутентификационные данные Windows .NET Server предоставляются источнику данных. Учетная запись пользователя Windows, используемая приложением ASP.NET, меняться в зависимости от следующих критериев.

  • Аутентификация осуществляется для приложения ASP.NET. Анонимная или не анонимная.
  • Используется режим изоляции IIS. Режим изоляции IIS 5.0 или режим изоляции рабочих процессов.

В зависимости от метода аутентификации в приложении IIS ASP.NET использует следующие учетные записи Windows.

  • Гостевая учетная запись Windows IIS для анонимного доступа.

    IUSER_<имя_компьютера>

  • Субъект пула приложения. Учетная запись Windows, определенная в пуле приложения. Учетными записями по умолчанию являются Network Service (Сетевая служба), Local Service (Локальная служба) и Local System (Локальная система).
  • Учетная запись Windows-аутентифицируемого пользователя, являющегося потребителем приложения. Аутентификационные данные, предоставленные пользователем при аутентификации приложения сервера ASP.NET.


Если IIS настроен на разрешение анонимного доступа к сайту, и для сервера установлен режим изоляции приложения по умолчанию (т.е. режим изоляции рабочих процессов), то ASP.NET использует субъект в пуле приложения, занятом веб-приложением. Если режим изоляции IIS 5.0 используется для обеспечения обратной совместимости, то субъектом пула приложения будет гостевая учетная запись IIS. Если приложение настроено на использование одного из режимов аутентификации, доступных в IIS и предусматривающих предоставление аутентификационных данных пользователем, то IIS по умолчанию использует в качестве субъекта аутентификационные данные. Субъекты, используемые по умолчанию приложением IIS, приведены в табл. 2.1.

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

Для веб-формы showGrid.aspx применяется режим изоляции рабочих процессов. Анонимный доступ будет разрешен, поэтому аутентификационными данными учетной записи Windows пула приложений станут входные данные, используемые для доступа к источнику информации. Для файла базы данных Microsoft Access файловые разрешения несущего сервера устанавливаются так, чтобы учетная запись Windows производила чтение, запись и изменение файла .mdb. Если речь идет о базе данный корпоративного уровня, то учетной записи Windows нужно предоставить соответствующий доступ к базе данных на сервере базы данных.

Примечание. Следует помнить, что файл web.config содержит элемент authentication. Режимом элемента аутентификации по умолчанию является Windows. Так как многие программисты используют учетную запись группы администраторов, то впечатление о правильности параметров в форме ASP.NET может быть обманчивым, так как эта учетная запись наделена правами на выполнение практически любых действий в среде разработки. При перемещении приложения на тестовый или конечный сервер с ограниченными разрешениями доступа возможно, что веб-форма не будет функционировать.



Таблица 2.1. Субъекты по умолчанию для приложения ASP.NETАутентификацияРежим изоляции приложенияУчетная запись Windows, используемая ASP.NET
АнонимнаяИзоляция IIS 5.0IUSER_<имя_компьютера>.
АнонимнаяИзоляция рабочих процессовСубъект пула приложения для веб-приложения.
Не анонимнаяИзоляция IIS 5.0Аутентификационные данные, предоставленные пользователем при проверке подлинности.
Не анонимнаяИзоляция рабочих процессовАутентификационные данные, предоставленные пользователем при проверке подлинности.

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