다음을 통해 공유


방법: 미리 컴파일된 웹 사이트를 위한 어셈블리에 서명

업데이트: 2007년 11월

ASP.NET 컴파일 도구(Aspnet_compiler.exe)로 생성한 어셈블리에 디지털 서명하여 웹 응용 프로그램의 보안을 강화할 수 있습니다. 어셈블리에 서명할 때 강력한 이름을 사용하면 공격자가 응용 프로그램에 악성 코드를 삽입하기가 더 어려워집니다. 서명된 어셈블리를 사용할 때의 이점에 대한 자세한 내용은 강력한 이름의 어셈블리를 참조하십시오.

-keyfile 또는 -keycontainer 스위치를 사용하여 어셈블리에 서명할 때는 항상 -aptca 스위치를 사용하여 AllowPartiallyTrustedCallersAttribute 특성도 어셈블리에 적용되도록 지정해야 합니다. -aptca 스위치를 지정하지 않으면 ASP.NET 프로세스에서 어셈블리를 호출할 수 없으므로 Aspnet_compiler.exe에서 예외가 throw됩니다.

이 항목의 절차에서는 강력한 이름의 키 쌍과 함께 Aspnet_compiler.exe의 스위치와 매개 변수를 사용합니다. 이 도구에 대한 자세한 내용은 ASP.NET 컴파일 도구(Aspnet_compiler.exe)를 참조하십시오. 강력한 이름의 키에 대한 자세한 내용은 강력한 이름의 어셈블리 만들기 및 사용을 참조하십시오.

미리 컴파일에 대한 자세한 내용은 ASP.NET 웹 사이트 미리 컴파일을 참조하십시오.

미리 컴파일된 웹 사이트의 어셈블리에 서명하려면

  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 웹 사이트 미리 컴파일