Поделиться через


Практическое руководство. Подписывание сборок для предкомпилированных веб-узлов

Обновлен: Ноябрь 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.

Подписывание сборок для предкомпилированных веб-узлов

  1. Создайте пару ключей со строгими именами или контейнер ключей. Дополнительные сведения о создании ключа со строгим именем см. в разделе Практическое руководство. Создание пары открытого и закрытого ключей.

  2. Откройте командное окно и перейдите к папке, в которой установлена платформа .NET Framework.

    Платформа .NET Framework устанавливается в следующий каталог.

    %windir%\Microsoft.NET\Framework\version
    
  3. В командной строке введите следующее выражение, чтобы выполнить команду 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

Другие ресурсы

ASP.NET Web Site Precompilation