Практическое руководство. Подписывание сборок для предкомпилированных веб-узлов
Обновлен: Ноябрь 2007
Чтобы повысить безопасность веб-приложения, можно создать цифровые подписи сборок, созданных с помощью средства компиляции ASP.NET (Aspnet_compiler.exe). Подписывание сборок с использованием строгого имени позволяет защитить приложение от внедрения вредоносного кода злоумышленниками. Дополнительные сведения о преимуществах использования подписанных сборок см. в разделе Сборки со строгими именами.
Если для подписывания сборки используется ключ -keyfile или -keycontainer, также необходимо применить к ней атрибут AllowPartiallyTrustedCallersAttribute, указав ключ -aptca. Если ключ -aptca не указан, вызов сборки из процесса ASP.NET невозможен, в результате чего возникает исключение компилятора Aspnet_compiler.exe.
В представленной в этом разделе процедуре используются пара ключей со строгими именами, а также ключи и параметры компилятора Aspnet_compiler.exe. Дополнительные сведения об этом средстве см. в разделе Программа компиляции для ASP.NET (Aspnet_compiler.exe). Дополнительные сведения о ключах со строгими именами см. в разделе Создание и использование сборок со строгими именами.
Дополнительные сведения о предварительной компиляции см. в разделе ASP.NET Web Site Precompilation.
Подписывание сборок для предкомпилированных веб-узлов
Создайте пару ключей со строгими именами или контейнер ключей. Дополнительные сведения о создании ключа со строгим именем см. в разделе Практическое руководство. Создание пары открытого и закрытого ключей.
Откройте командное окно и перейдите к папке, в которой установлена платформа .NET Framework.
Платформа .NET Framework устанавливается в следующий каталог.
%windir%\Microsoft.NET\Framework\version
В командной строке введите следующее выражение, чтобы выполнить команду aspnet_compiler.
aspnet_compiler -v virtualPathtargetPath -keyfile keyFile.snk -aptca
Параметр virtualPath определяет виртуальный путь к службам IIS веб-узла. Параметр targetPath определяет физический путь к каталогу, в котором располагается скомпилированный веб-узел. Параметр keyFile.snk определяет имя файла ключа.
При использовании контейнера ключей введите следующую команду в командной строке.
aspnet_compiler -v virtualPathtargetPath -keycontainer keyContainer.snk -atpca
Если веб-узел не является приложением IIS (для него отсутствует запись в метабазе IIS), введите следующую команду в командной строке.
aspnet_compiler -p physicalOrRelativePath -v / targetPath -keyfile keyFile.snk -aptca
В этом случае параметр physicalOrRelativePath определяет полный путь к каталогу, в котором расположены файлы веб-узла, или путь относительно текущего каталога. В параметре physicalOrRelativePath допускается использование оператора точки (.). Ключ -v определяет корневой каталог, используемый компилятором для разрешения ссылок на корень приложения, задаваемых, например, с помощью оператора тильды (~). Если для ключа -v задано значение /, для разрешения путей в качестве корня используется физический путь.
При использовании контейнера ключей введите следующую команду в командной строке.
aspnet_compiler -p physicalOrRelativePath -v / targetPath -keycontainer keyContainer.snk -aptca
Параметр targetPath определяет физический путь к конечному каталогу.
См. также
Задачи
Практическое руководство. Предварительная компиляция веб-узлов ASP.NET