Введение
Рекомендация по изоляции веб-сайтов в общей среде размещения согласуется со всеми общими рекомендациями по изоляции безопасности для служб IIS 7 (IIS 7) и более поздних версий. В частности, рекомендуется:
- Используйте один пул приложений на веб-сайт.
- Используйте выделенную учетную запись пользователя в качестве удостоверения для пула приложений.
- Настройте анонимное удостоверение пользователя для использования удостоверения пула приложений.
- Убедитесь, что олицетворение FastCGI включено в файле Php.ini.
На рисунке ниже появляется представление архитектуры пулов приложений.
Рис. 1. Пулы приложений
Теневое копирование
Теневое копирование сборок приложений в модуль ASP.NET Core (ANCM) для IIS может быть удобнее для пользователя, чем остановка приложения путем развертывания автономного файла приложения.
Когда приложение ASP.NET Core работает в Windows, двоичные файлы блокируются, чтобы их нельзя было изменить или заменить. Теневое копирование позволяет обновлять сборки приложений во время работы приложения, создавая копию сборок.
Теневое копирование не предназначено для обеспечения развертывания с нулевым временем простоя, поэтому ожидается, что IIS все равно перезапустит приложение, а на некоторые запросы может вернуться ответ 503 Service Unavailable. Для исключения простоев рекомендуем использовать шаблон сине-зеленого развертывания или . Теневое копирование помогает свести к минимуму время простоя при развертывании, но не может полностью исключить его.
Теневое копирование включается путем настройки параметров обработчика ANCM в :
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент не был изменен в IIS 10.0. |
IIS 8,5 | Элемент не был изменен в IIS 8.5. |
IIS 8,0 | Элемент не был изменен в IIS 8.0. |
IIS 7,5 | Элемент элемента поставляется как компонент IIS 7.5. |
IIS 7.0 | Элемент элемента появился в FTP 7.0, который был отдельным скачиванием для IIS 7.0. |
IIS 6,0 | Н/Д |
Примечание
Службы FTP 7.0 и FTP 7.5 поставляются из аппаратного контроллера для IIS 7.0, которые требуют загрузки и установки модулей по следующему URL-адресу:
В Windows 7 и Windows Server 2008 R2 служба FTP 7.5 поставляется в качестве функции для IIS 7.5, поэтому скачивание службы FTP больше не требуется.
Модуль инициализации приложений и время ожидания в режиме простоя
Размещение в IIS с помощью модуля ASP.NET Core версии 2:
- . Приложение, размещенное в процессе или вне процесса, можно настроить на автоматический запуск при перезапуске рабочего процесса или сервера.
- . Приложение, размещенное в процессе, можно настроить на игнорирование времени ожидания в периоды неактивности.
Модуль инициализации приложений
Применяется к приложениям, размещенным в процессе и вне процесса.
Функция инициализации приложений в IIS отправляет в приложение HTTP-запрос при запуске или перезапуске пула приложений. Этот запрос инициирует запуск приложения. По умолчанию IIS отправляет запрос к корневому URL-адресу приложения () для его инициализации (подробные сведения о конфигурации см. в ).
Убедитесь, что включена роль инициализации приложения IIS.
На настольных компьютерах с Windows 7 или более поздней версии при локальном использовании IIS:
- Последовательно выберите Панель управления>Программы>Программы и компоненты>Включение или отключение компонентов Windows (в левой части экрана).
- Откройте Службы IIS>Службы Интернета>Компоненты разработки приложений.
- Установите флажок Инициализация приложений.
В Windows Server 2008 R2 и более поздней версии:
- Откройте Мастер добавления ролей и компонентов.
- На панели Выбор служб ролей разверните узел Разработка приложений.
- Установите флажок Инициализация приложений.
Чтобы включить модуль инициализации приложений для сайта, используйте один из следующих подходов.
-
При использовании диспетчера IIS:
- Выберите Пулы приложений на панели Подключения.
- Щелкните пул приложений в списке правой кнопкой мыши и выберите Дополнительные параметры.
- Для режима запуска по умолчанию задано значение . Выберите для параметра Режим запуска значение . Нажмите кнопку ОК.
- Откройте узел Сайты на панели Подключения.
- Щелкните приложение правой кнопкой мыши и выберите Управление веб-сайтом>Дополнительные параметры.
- По умолчанию для параметра Предварительная загрузка включена установлено значение . Для параметра Предварительная загрузка включена выберите значение . Щелкните ОК.
-
Откройте и добавьте элемент с параметром , для которого установлено значение , к элементам в файле приложения.
Время ожидания в режиме простоя
Применяется только к приложениям, размещенным в процессе.
Чтобы предотвратить переход приложения из состояния простоя, задайте для пула приложений время ожидания в режиме простоя с помощью диспетчера IIS:
- Выберите Пулы приложений на панели Подключения.
- Щелкните пул приложений в списке правой кнопкой мыши и выберите Дополнительные параметры.
- По умолчанию для параметра Тайм-аут простоя (в минутах) установлено значение минут. Задайте для параметра Тайм-аут простоя (в минутах) значение (ноль). Нажмите кнопку ОК.
- Перезапустите рабочий процесс.
Чтобы не истекло время ожидания в приложениях, размещенных вне процесса, воспользуйтесь одним из таких методов:
- Проверьте связь с приложением из внешней службы, чтобы оно продолжило работу.
- Если приложение размещает только фоновые службы, избегайте размещения в службах IIS и воспользуйтесь службой Windows для размещения приложения ASP.NET Core.
Конфигурация
Атрибуты
Атрибут | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Необязательный атрибут перечисления.Указывает режим изоляции пользователя.
Значение по умолчанию — . |
Дочерние элементы
Элемент | Описание |
---|---|
Необязательный элемент.Указывает учетные данные подключения и время ожидания для взаимодействия с сервером Active Directory. |
Образец конфигурации
В следующем примере показан элемент для ftp-сайта, который настраивает службу FTP для использования Active Directory для изоляции пользователя этого сайта и настраивает учетные данные для подключения к серверу Active Directory.
Другие проблемы, влияющие на производительность IIS
Следующие проблемы могут повлиять на производительность IIS:
-
Установка фильтров, не поддерживающих кэш
Установка фильтра, не поддерживающего http-кэш, приводит к полному отключению кэширования IIS, что приводит к снижению производительности. Фильтры ISAPI, написанные до IIS 6.0, могут вызвать такое поведение.
-
Запросы интерфейса общего шлюза (CGI)
По соображениям производительности использование приложений CGI для обслуживания запросов не рекомендуется для iis. Часто создавая и удаляя процессы CGI, влечет за собой значительные издержки. Лучшие альтернативы включают использование FastCGI, скриптов приложений ISAPI и скриптов ASP или ASP.NET. Изоляция доступна для каждого из этих вариантов.
Обзор
Элемент содержит параметры конфигурации для всех пулов приложений, работающих на сервере IIS 7 или более поздней версии. Пул приложений определяет группу одного или нескольких рабочих процессов, настроенных с общими параметрами, которые служат запросам к одному или нескольким приложениям, назначенным данному пулу приложений. Так как пулы приложений позволяют набору веб-приложений совместно использовать один или несколько аналогичных рабочих процессов, они предоставляют удобный способ изоляции набора веб-приложений от других веб-приложений на серверном компьютере. Границы процессов разделяют каждый рабочий процесс; Таким образом, проблемы приложений в одном пуле приложений не влияют на веб-сайты или приложения в других пулах приложений. Пулы приложений значительно повышают надежность и управляемость веб-инфраструктуры.
Вы можете использовать пул приложений по умолчанию, предоставляемый СЛУЖБАми IIS при установке, или создать собственный пул приложений. Вы можете запускать столько пулов приложений на сервере IIS 7 и более поздних версий, но это может повлиять на производительность сервера. Пулы приложений могут содержать один или несколько рабочих процессов. Каждый рабочий процесс представляет собой работу, выполняемую для веб-сайта, веб-приложения или веб-службы. Вы можете создать веб-сад, включив несколько рабочих процессов для выполнения в одном пуле приложений.
В IIS 7 и более поздних версиях каждый пул приложений использует один из двух режимов интеграции .NET для запуска приложений ASP.NET: интегрированных или классических. Режим интеграции .NET, определенный для пула приложений, определяет, как IIS обрабатывает входящий запрос к сайтам, приложениям и веб-службам, которые выполняются в этом пуле приложений.
- Режим интеграции позволяет службам IIS обрабатывать запросы в пуле приложений с помощью конвейера IIS 7 и более поздних версий. Это позволяет ASP.NET модулям участвовать в обработке запросов IIS независимо от типа запрошенного ресурса. Использование интегрированного режима предоставляет доступные функции конвейера запросов ASP.NET 2.0 для запросов статического содержимого, а также ASP, PHP и других типов контента. По умолчанию пулы приложений IIS 7 и более поздних версий выполняются в этом режиме.
- Классический режим использует конвейер обработки IIS 6.0 для размещения ASP.NET приложений. В этом режиме запросы обрабатываются изначально через модули IIS 7 и более поздних версий, а ASP.NET запросы дополнительно обрабатываются aspnet_isapi.dll. Конвейер обработки ASP.NET отделен от конвейера обработки IIS 7 и более поздних версий, а функции конвейера обработки запросов ASP.NET недоступны для других типов ресурсов. Это также означает, что запрос ASP.NET должен проходить через модули проверки подлинности и авторизации в обеих моделях процессов. Хотя это не так эффективно, как интегрированный режим, он позволяет запускать приложения, разработанные с помощью ASP.NET версии 1.1 на сервере IIS 7 и более поздних версий, не изменяя приложение для запуска в режиме интеграции.
Новые возможности в IIS 7.5 и более поздних версий
Начиная с IIS 7.5, можно настроить приложение для автоматического запуска с помощью атрибутов managedRuntimeLoader, CLRConfigFile и startMode элемента. Эти атрибуты настраивают соответственно имя управляемой библиотеки DLL, которая обеспечивает загрузку среды выполнения для приложения, файл конфигурации среды CLR для приложения и тип запуска приложения.
Кроме того, новый тип в IIS 7.5 и более поздних версий — это новый тип атрибута identityType элемента. Этот новый тип удостоверения теперь является удостоверением процесса по умолчанию для приложений и позволяет задать безопасность для областей содержимого, чтобы разрешить доступ к определенному пулу приложений. Для этого необходимо задать безопасность с помощью имени пула приложений с помощью синтаксиса, например «IIS AppPool\DefaultAppPool». Это удостоверение создается динамически, тем самым значительно уменьшая область атаки на сервере.
Изоляция пулов приложений
Разделение приложений на несколько пулов приложений может не только повысить производительность, но и повысить надежность сервера и сайта. Однако в предыдущих версиях IIS иногда было трудно изолировать пулы веб-приложений друг от друга. Если несколько пулов приложений настроены для запуска с одним удостоверением, код, выполняемый внутри одного пула приложений, может использовать объекты файловой системы (FSO) для доступа к ресурсам, принадлежащим другому.
В IIS 7 каждый пул приложений имеет файл конфигурации, который создается при запуске пула приложений. Эти файлы хранятся по умолчанию в папке .
Каждый пул приложений также имеет идентификатор безопасности (SID), который добавляется в соответствующий процесс w3wp.exe. Файл конфигурации пула приложений — это управление доступом (ACLed), разрешающее доступ только к идентификатору безопасности.
Средство Icacls.exe можно использовать для идентификации идентификатора безопасности, примененного к любому файлу конфигурации пула приложений, с помощью следующих средств:
Пользователь может использовать идентификатор безопасности пула приложений для ACL и защитить свой веб-сайт. Это полезно для веб-организаторов, которым необходимо принимать содержимое из различных внешних источников.
- Настройте каждый веб-сайт (или веб-приложение) для запуска в собственном пуле веб-приложений.
- Настройте анонимную проверку подлинности, чтобы использовать удостоверение пула приложений, а не учетную запись отчетов об использовании отрасли (IUSR), изменив свойства анонимной проверки подлинности.
- Удалите разрешения NTFS для группы IUSRS и учетной записи IUSR из файлов и папок веб-сайта.
- Используйте средство Icacls.exe, чтобы предоставить идентификатору безопасности пула приложений доступ «чтение» (и при необходимости «выполнить» и «запись») к файлам и папкам веб-сайта. Для предоставления разрешений на чтение можно использовать IIS APPPOOL\ApplicationPoolName.
После настройки разрешений NTFS только идентификатор безопасности, внедренный в определенный процесс w3wp.exe, сможет прочитать содержимое веб-сайта. Весь код, выполняемый в других процессах w3wp.exe (даже если выполняется с одинаковым удостоверением), не сможет получить доступ к содержимому этого веб-сайта.
Примечание
Эта статья основана на материалах из удостоверений пула приложений, написанных командой IIS и опубликованной 27 мая 2009 года.
Защита данных
Стек защиты данных ASP.NET Core используют несколько ПО промежуточного слоя ASP.NET Core, включая ПО, которое применяется для аутентификации. Даже если API-интерфейсы защиты данных не вызываются из пользовательского кода, защиту данных следует настроить для создания постоянного хранилища криптографических ключей. Это можно сделать с помощью скрипта развертывания или в пользовательском коде. Если защита данных не настроена, ключи хранятся в памяти и удаляются при перезапуске приложения.
Если набор ключей для защиты данных хранится в памяти, при перезапуске приложения происходит следующее.
- Все токены аутентификации, использующие файлы cookie, становятся недействительными.
- При выполнении следующего запроса пользователю требуется выполнить вход снова.
- Все данные, защищенные с помощью набора ключей, больше не могут быть расшифрованы. Это могут быть и .
Чтобы настроить защиту данных в службах IIS для хранения набора ключей, воспользуйтесь одним из следующих методов:
-
Создание разделов реестра для защиты данных
Ключи защиты данных, используемые приложениями ASP.NET Core, хранятся во внешнем для приложений реестре. Чтобы хранить эти ключи для определенного приложения, нужно создать разделы реестра для пула приложений.
При автономной установке служб IIS, не поддерживающей веб-ферму, можно выполнить скрипт PowerShell Provision-AutoGenKeys.ps1 для защиты данных применительно к каждому пулу приложений, в который входит приложение ASP.NET Core. Этот скрипт создает раздел в реестре HKLM, который будет доступен только для учетной записи рабочего процесса пула приложений, к которому относится соответствующее приложение. Неактивные ключи шифруются с помощью API защиты данных с ключом компьютера.
В случаях, когда используется веб-ферма, в приложении можно настроить UNC-путь, по которому это приложение будет хранить набор ключей для защиты данных. По умолчанию ключи не шифруются. Разрешения на доступ к файлам в сетевой папке должны быть предоставлены только учетной записи Windows, с помощью которой выполняется приложение. Для защиты неактивных ключей можно использовать сертификат X509. Рассмотрите возможность реализации механизма, позволяющего пользователям отправлять сертификаты. поместите сертификаты в хранилище доверенных сертификатов пользователя и обеспечьте их доступность на всех компьютерах, где выполняется приложение. Дополнительные сведения см. в статье Настройка защиты данных в ASP.NET Core.
-
Настройка пула приложений IIS для загрузки профиля пользователя.
Этот параметр находится на странице Дополнительные параметры пула приложений в разделе Модель процесса. Задайте для параметра Загрузить профиль пользователя значение . Если задать значение , ключи будут храниться в каталоге профиля пользователя и защищаться с помощью API защиты данных и ключа на уровне учетной записи пользователя. Ключи хранятся в папке .
Также необходимо включить пула приложений. Значением свойства по умолчанию является . В некоторых сценариях (например, в ОС Windows) для параметра установлено значение . Если ключи не хранятся в каталоге профиля пользователя:
- Перейдите в папку .
- Откройте файл .
- Найдите элемент .
- Убедитесь, что атрибут отсутствует и установлено значение по умолчанию , или же явно задайте для атрибута значение .
-
Использование файловой системы в качестве хранилища набора ключей.
Измените код приложения так, чтобы в качестве хранилища набора ключей использовалась файловая система. Для защиты набора ключей используйте доверенный сертификат X509. Если сертификат — самозаверяющий, поместите его в доверенное корневое хранилище.
При использовании служб IIS в веб-ферме:
- используйте общую папку, которая доступна всем компьютерам;
- разверните сертификат X509 на каждом компьютере; настройте защиту данных в коде.
-
Настройка политики защиты данных на уровне компьютера
Система защиты данных обеспечивает ограниченную поддержку задания политики по умолчанию на уровне компьютера для всех приложений, использующих интерфейсы API защиты данных. Дополнительные сведения см. в статье Защита данных в ASP.NET Core.
Настройка автономных файлов IIS для общей конфигурации на всех узлах кластера
На каждом узле кластера включите автономные файлы:
-
Установка интерфейса рабочего стола
- Перейдите к разделу «Администрирование» и выберите диспетчер сервера.
- В левой области выберите » Компоненты».
- Выберите «Добавить компоненты » в правой области.
- Выполните одно из следующих действий в соответствии с вашей версией Windows:
- Дополнительные Windows Server 2016 на странице «Установка сервера с рабочим столом».
- Для Windows Server 2102 и 2012 R2 выберите «Возможности рабочего стола» в разделе «Пользовательские интерфейсы и инфраструктуры» в списке функций.
- Для Windows Server 2008 и 2008 R2 выберите «Возможности рабочего стола».
- Выберите «Установить» , чтобы установить возможности рабочего стола.
- Перезагрузите компьютер.
-
Выполните одно из следующих действий.
- Для Windows Server 2012 2012 R2 и 2016 выберите центр синхронизации в панель управления, а затем выберите «Управление автономными файлами».
- Для Windows Server 2008 и 2008 R2 выберите автономные файлы в панель управления.
-
Выберите «Включить автономные файлы». В настоящее время не перезагрузите компьютер.
-
Убедитесь, что кэш имеет доступ только для чтения. Для этого выполните следующую команду в командной строке с повышенными привилегиями:
-
Перезагрузите компьютер.
-
Перейдите на файловые серверы с компьютера. Щелкните правой кнопкой мыши общую папку, содержащую общую конфигурацию IIS, а затем выберите «Всегда доступно в автономном режиме».
Примечание.
Если вы настроили общую папку для высокой доступности в том же отказоустойчивом кластере, где размещены узлы IIS, параметр Always Available Offline не будет отображаться при щелчке правой кнопкой мыши общей папки, если на узле кластера размещен высокодоступный файловые серверы. Необходимо переместить приложение файлового сервера с высоким уровнем доступности на другой узел.
-
В панель управления откройте автономные файлы. Выберите «Открыть центр синхронизации», а затем выберите » Расписание».
-
Запланируйте автономную синхронизацию файлов на каждый день или в соответствии с вашими требованиями. Вы также можете настроить автономную синхронизацию для выполнения каждые несколько минут. Даже если планировщик не настроен, при изменении чего-либо в файлеApplicationhost.config изменения отражаются на веб-сервере.
Примечание.
Дополнительные сведения о настройке автономных файлов для общей конфигурации в IIS см. в разделе «Автономные файлы для общей конфигурации».
Предварительные требования
- Пакет SDK для .NET Core, установленный на компьютере разработки.
- Сервер Windows Server с настроенной ролью Веб-сервер (IIS) . Если сервер не настроен для размещения веб-сайтов со службами IIS, следуйте указаниям в разделе Настройка служб IIS статьи , а затем вернитесь к этому руководству.
Предупреждение
Принципы настройки служб IIS и обеспечения безопасности веб-сайта не рассматриваются в этом руководстве. Перед размещением рабочих приложений в службах IIS ознакомьтесь с руководством по службам IIS в документации по Microsoft IIS и статьей о размещении ASP.NET Core с помощью служб IIS.
Важные сценарии размещения служб IIS, не рассматриваемые в этом руководстве:
- Чтобы сосредоточиться на принципах развертывания посредством служб IIS, в этом руководстве приложение развертывается без настройки протокола HTTPS в службах IIS. Дополнительные сведения о размещении приложения с поддержкой протокола HTTPS см. в статьях, посвященных безопасности, в разделе этой статьи. Дополнительные рекомендации по размещению приложений ASP.NET Core приведены в статье Размещение ASP.NET Core в Windows со службами IIS.
Конфигурация прокси-сервера использует протокол HTTP и токен связывания
Применяется только к размещению вне процесса.
Прокси-сервер, созданный между модулем ASP.NET Core и Kestrel, использует протокол HTTP. Отсутствует риск перехвата трафика между модулем и Kestrel из расположения за пределами сервера.
Токен связывания гарантирует, что полученные Kestrel запросы были переданы через прокси-сервер IIS, а не из какого-либо другого источника. Этот токен создается и задается модулем в переменную среды (). Он также задается в заголовке () каждого запроса, переданного через прокси-сервер. ПО промежуточного слоя IIS проверяет каждый получаемый запрос, чтобы убедиться, что заголовок с токеном связывания соответствует значению переменной среды. Если значения токена не совпадают, запрос заносится в журнал и отклоняется. Переменная среды с токеном связывания и трафик между модулем и Kestrel недоступны из расположения за пределами сервера. Не зная значение токена связывания, злоумышленник не может отправлять запросы, обходящие проверку в ПО промежуточного слоя IIS.
Шаг 1. Установка IIS и ASP.NET
Службы Internet Information Services — это компонент Windows, который можно установить с помощью меню «Пуск». В меню «Пуск» выполните поиск функций Windows включено или выключение.
Найдите и выберите службы Iis для установки СЛУЖБ IIS.
Примечание
Вам не нужно выбирать все флажки в разделе «Службы Iis Information Services«. Достаточно только тех, которые выбраны при проверке служб Iis Information Services .
Вам также потребуется установить ASP.NET 4.5 или более поздней версии. Чтобы установить его, найдите службы Internet Information Services —> веб-службы World Wide Web Services —> функции разработки приложений. Выберите версию ASP.NET, которая больше или равна ASP.NET 4.5.
Изменение алгоритмов с помощью UseCryptographicAlgorithms
Стек защиты данных позволяет изменить алгоритм по умолчанию, используемый новыми ключами. Самый простой способ сделать это — выполнить вызов из обратного вызова UseCryptographicAlgorithms конфигурации:
Значение по умолчанию EncryptionAlgorithm — AES-256-CBC, а по умолчанию ValidationAlgorithm — HMACSHA256. Политика по умолчанию может быть задана системным администратором с помощью политики на уровне компьютера, но явный вызов для переопределения политики по умолчанию.
Вызов позволяет указать требуемый алгоритм из предопределенного встроенного списка. Вам не нужно беспокоиться о реализации алгоритма. В приведенном выше сценарии система защиты данных пытается использовать реализацию AES CNG при работе в Windows. В противном случае он возвращается к управляемому System.Security.Cryptography.Aes классу.
Вы можете вручную указать реализацию с помощью вызова UseCustomCryptographicAlgorithms.
Совет
Изменение алгоритмов не влияет на существующие ключи в кольце ключей. Это влияет только на вновь созданные ключи.
Указание пользовательских управляемых алгоритмов
Чтобы указать пользовательские управляемые алгоритмы, создайте экземпляр, указывающий ManagedAuthenticatedEncryptorConfiguration на типы реализации:
Как правило, свойства *Type должны указывать на конкретные, экземпляры (с помощью открытого SymmetricAlgorithm конструктора без параметров) и KeyedHashAlgorithm, хотя системные специальные случаи некоторые значения, как для удобства.
Примечание
SymmetricAlgorithm должен иметь длину ключа ≥ 128 бит и размер блока ≥ 64 бита, и он должен поддерживать шифрование в режиме CBC с помощью заполнения PKCS #7. KeyedHashAlgorithm должен иметь размер >дайджеста = 128 бит, и он должен поддерживать ключи длины, равной длине хэш-алгоритма. KeyedHashAlgorithm не обязательно должен быть HMAC.
Указание настраиваемых алгоритмов Windows CNG
Чтобы указать пользовательский алгоритм Windows CNG с помощью шифрования в режиме CBC с проверкой CngCbcAuthenticatedEncryptorConfiguration HMAC, создайте экземпляр, содержащий алгоритмические сведения:
Примечание
Алгоритм симметричного блочного шифра должен иметь длину >ключа = 128 бит, размер >блока = 64 бита, и он должен поддерживать шифрование в режиме CBC с помощью заполнения PKCS #7. Хэш-алгоритм должен иметь размер >дайджеста = 128 бит и должен поддерживать открытие с помощью флага BCRYPT_ALG_HANDLE_HMAC_FLAG. Для свойств *Provider можно задать значение NULL, чтобы использовать поставщик по умолчанию для указанного алгоритма. Дополнительные сведения см. в документации по BCryptOpenAlgorithmProvider .
Чтобы указать пользовательский алгоритм CNG Windows с помощью шифрования режима Galois/Counter с проверкой, создайте CngGcmAuthenticatedEncryptorConfiguration экземпляр, содержащий алгоритмическую информацию:
Примечание
Алгоритм симметричного блочного шифра должен иметь длину >ключа = 128 бит, размер блока ровно 128 бит, и он должен поддерживать шифрование GCM. Для свойства можно задать значение NULL, чтобы использовать поставщик по умолчанию для указанного алгоритма. Дополнительные сведения см. в документации по BCryptOpenAlgorithmProvider .
Указание других пользовательских алгоритмов
Хотя и не предоставляется в качестве API первого класса, система защиты данных является достаточно расширяемой, чтобы разрешить указание практически любого типа алгоритма. Например, можно сохранить все ключи, содержащиеся в аппаратном модуле безопасности (HSM), и предоставить пользовательскую реализацию основных процедур шифрования и расшифровки. Дополнительные сведения см. в разделе IAuthenticatedEncryptor о расширяемости шифрования Core.
Настройка
Чтобы обеспечить поддержку публикации FTP для веб-сервера, необходимо установить службу FTP. Для этого выполните следующие действия.
Windows Server 2012 или Windows Server 2012 R2
-
На панели задач щелкните Диспетчер сервера.
-
В диспетчер сервера выберите меню «Управление» и выберите пункт «Добавить роли и компоненты».
-
В мастере добавления ролей и компонентов нажмите кнопку «Далее». Выберите тип установки и нажмите кнопку «Далее». Выберите целевой сервер и нажмите кнопку «Далее».
-
На странице » Роли сервера » разверните веб-сервер (IIS) и выберите FTP-сервер.
Примечание
Поддержка ASP. Проверка подлинности членства или проверка подлинности диспетчера IIS для службы FTP необходимо выбрать расширяемость FTP, а также службу FTP. .
-
Нажмите кнопку «Далее», а затем на странице » Выбор компонентов » снова нажмите кнопку «Далее «.
-
На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
-
На странице Результаты нажмите кнопку Закрыть.
Windows 8 или Windows 8.1
-
На начальном экране переместите указатель на левый нижний угол, щелкните правой кнопкой мыши кнопку «Пуск» и выберите пункт панель управления.
-
В панель управления щелкните «Программы и компоненты», а затем выберите «Включить или отключить компоненты Windows».
-
Разверните службы Internet Information Services и выберите FTP-сервер.
Примечание
Поддержка ASP. Проверка подлинности членства или проверка подлинности диспетчера IIS для службы FTP также потребуется выбрать расширяемость FTP.
-
Нажмите кнопку ОК.
-
Щелкните Закрыть.
Windows Server 2008 R2
-
На панели задач нажмите кнопку «Пуск», наведите указатель мыши на администрирование и нажмите кнопку диспетчер сервера.
-
В области иерархии диспетчер сервера разверните узел «Роли» и выберите «Веб-сервер (IIS)».
-
В области веб-сервера (IIS) прокрутите страницу до раздела «Службы ролей » и щелкните » Добавить службы ролей».
-
На странице «Выбор служб ролей » мастера добавления служб ролей разверните узел FTP-сервер.
-
Выберите службу FTP.
Примечание
Поддержка ASP. Проверка подлинности членства или проверка подлинности диспетчера IIS для службы FTP также потребуется выбрать расширяемость FTP.
-
Щелкните Далее.
-
На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
-
На странице Результаты нажмите кнопку Закрыть.
Windows 7
-
На панели задач нажмите кнопку «Пуск» и нажмите кнопку панель управления.
-
В панель управления щелкните «Программы и компоненты», а затем выберите «Включить или отключить компоненты Windows».
-
Разверните службы IIS, а затем FTP-сервер.
-
Выберите службу FTP.
Примечание
Поддержка ASP. Проверка подлинности членства или проверка подлинности диспетчера IIS для службы FTP также потребуется выбрать расширяемость FTP.
-
Нажмите кнопку ОК.
Windows Server 2008 или Windows Vista
-
Скачайте пакет установки по следующему URL-адресу:
https://www.iis.net/expand/FTP
-
Чтобы установить службу FTP, следуйте инструкциям в следующем пошаговом руководстве.
Установка и устранение неполадок FTP 7
Вложенные приложения
Приложение ASP.NET Core можно разместить как . Путь к вложенному приложению становится частью URL-адреса главного приложения.
В ссылках на статический ресурс во вложенном приложении следует использовать нотацию . Такая нотация активирует вспомогательную функцию тега для добавления свойства pathbase вложенного приложения в начало отображаемой относительной ссылки. Для вложенного приложения с путем ссылка на изображение отображается как . ПО промежуточного слоя для обработки статических файлов в главном приложении не обрабатывает такой запрос статического файла. Запрос обрабатывается соответствующим ПО вложенного приложения.
Если атрибуту статического ресурса присваивается абсолютный путь (например, ), ссылка отображается без свойства pathbase вложенного приложения. ПО промежуточного слоя для обработки статических файлов в главном приложении пытается найти ресурс в главного приложения, что приводит к ошибке 404 — Not Found (не найдено), кроме случаев, когда статический ресурс доступен из главного приложения.
Для размещения приложения ASP.NET Core в качестве приложения, вложенного в другое приложение ASP.NET Core, сделайте следующее:
-
Создайте пул приложений для вложенного приложения. Установите для параметра Версия среды CLR .NET значение Без управляемого кода, так как для размещения приложения в рабочем процессе запускается CoreCLR для .NET Core, а не среда CRL для настольных ПК (.NET CLR).
-
Добавьте корневой веб-сайт в диспетчере служб IIS с вложенным приложением в папке внутри корневого веб-сайта.
-
Щелкните правой кнопкой мыши папку вложенного приложения в диспетчере служб IIS и выберите Преобразовать в приложение.
-
В диалоговом окне Добавление приложения нажмите кнопку Выбрать, чтобы назначить созданный пул приложений вложенному приложению. Нажмите кнопку ОК.
Назначение отдельного пула приложений вложенному приложению является обязательным при использовании модели внутрипроцессного размещения.
Дополнительные сведения о внутрипроцессной модели размещения и настройке модуля ASP.NET Core см. в статье Модуль ASP.NET Core (ANCM) для IIS.
Настройка приложений и сайтов
Следующие параметры относятся к пулу приложений и настройке сайта.
system.applicationHost/applicationPools/applicationPoolDefaults
attribute | Описание | Значение по умолчанию |
---|---|---|
queueLength | Указывает, HTTP.sys сколько запросов помещается в очередь для пула приложений, прежде чем будущие запросы отклоняются. Если значение этого свойства превышено, службы IIS отклоняют последующие запросы с ошибкой 503.Рекомендуется увеличить это для приложений, взаимодействующих с хранилищами данных с высокой задержкой, если наблюдаются ошибки 503. | 1000 |
enable32BitAppOnWin64 | Если значение равно True, позволяет 32-разрядному приложению работать на компьютере с 64-разрядным процессором.Рассмотрите возможность включения 32-разрядного режима, если потребление памяти является проблемой. Так как размеры указателей и инструкций меньше, 32-разрядные приложения используют меньше памяти, чем 64-разрядные приложения. Недостаток работы 32-разрядных приложений на 64-разрядном компьютере заключается в том, что адресное пространство в пользовательском режиме ограничено 4 ГБ. | Неверно |
system.applicationHost/sites/VirtualDirectoryDefault
attribute | Описание | Значение по умолчанию |
---|---|---|
allowSubDirConfig | Указывает, ищет ли СЛУЖБЫ IIS web.config файлы в каталогах содержимого ниже текущего уровня (True) или не ищет web.config файлы в каталогах содержимого ниже текущего уровня (False). Введя простое ограничение, которое разрешает настройку только в виртуальных каталогах, IISÂ 10.0 может знать, что, если только параметр /<name>.htm не является виртуальным каталогом, он не должен искать файл конфигурации. Пропуск дополнительных операций с файлами может значительно повысить производительность веб-сайтов с очень большим набором статического содержимого со случайным доступом. | True |