Freigeben über


Gewusst wie: Signieren von Assemblys für vorkompilierte Websites

Aktualisiert: November 2007

Sie können die vom ASP.NET-Kompilierungstool (Aspnet_compiler.exe) erzeugten Assemblys digital signieren, um die Sicherheit der Webanwendung zu erhöhen. Das Signieren einer Assembly mit einem starken Name erschwert Angreifern das Einfügen von bösartigem Code in die Anwendung. Weitere Informationen über die Vorteile der Verwendung signierter Assemblys finden Sie unter Assemblys mit starkem Namen.

Wenn Sie eine Assembly mit dem -keyfile-Schalter oder dem -keycontainer-Schalter signieren, müssen Sie zudem mithilfe des -aptca-Schalters festlegen, dass das AllowPartiallyTrustedCallersAttribute-Attribut auf die Assembly angewendet wird. Wenn Sie den -aptca-Schalter nicht angeben, kann die Assembly nicht vom ASP.NET-Prozess aufgerufen werden, und Aspnet_compiler.exe löst eine Ausnahme aus.

Für das Verfahren in diesem Thema werden ein Schlüsselpaar mit starkem Namen sowie die Schalter und Parameter von Aspnet_compiler.exe verwendet. Weitere Informationen über dieses Tool finden Sie unter ASP.NET-Kompilierungstool (Aspnet_compiler.exe). Weitere Informationen über Schlüssel mit starkem Namen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.

Weitere Informationen über die Vorkompilierung finden Sie unter Vorkompilieren einer ASP.NET-Website.

So signieren Sie Assemblys für eine vorkompilierte Website

  1. Erstellen Sie ein Schlüsselpaar mit starkem Namen oder einen Schlüsselcontainer. Weitere Informationen über das Erstellen eines Schlüssels mit starkem Namen finden Sie unter Gewusst wie: Erstellen eines öffentlichen/privaten Schlüsselpaars.

  2. Öffnen Sie ein Befehlsfenster, und navigieren Sie zu dem Ordner, der .NET Framework enthält.

    .NET Framework ist am folgenden Speicherort installiert.

    %windir%\Microsoft.NET\Framework\version
    
  3. Führen Sie den Befehl aspnet_compiler aus, indem Sie an der Eingabeaufforderung Folgendes eingeben:

    aspnet_compiler -v virtualPathtargetPath -keyfile keyFile.snk -aptca
    

    Der virtualPath-Parameter gibt den virtuellen Pfad der Internetinformationsdienste (IIS) der Website an, der targetPath-Parameter gibt den physischen Pfad des Verzeichnisses für die kompilierte Website an, und keyFile.snk gibt den Namen der Schlüsseldatei an.

    Wenn Sie einen Schlüsselcontainer verwenden, geben Sie an der Eingabeaufforderung Folgendes ein.

    aspnet_compiler -v virtualPathtargetPath -keycontainer keyContainer.snk -atpca
    

    Wenn es sich bei der Website nicht um eine IIS-Anwendung handelt und dementsprechend kein Eintrag in der IIS-Metabasis vorhanden ist, geben Sie an der Eingabeaufforderung Folgendes ein:

    aspnet_compiler -p physicalOrRelativePath -v / targetPath -keyfile keyFile.snk -aptca
    

    In diesem Fall bezieht sich der physicalOrRelativePath-Parameter auf den vollqualifizierten Verzeichnispfad, der die Dateien der Website enthält, oder auf einen relativ zum aktuellen Verzeichnis angegebenen Pfad. Der Punktoperator (.) ist für den physicalOrRelativePath-Parameter zulässig. Der -v-Schalter gibt einen Stamm an, mit dessen Hilfe der Compiler Verweise auf den Anwendungsstamm (z. B. mit einem Tildeoperator, ~) auflöst. Wenn Sie für den -v-Schalter den Wert / angeben, verwendet der Compiler zum Auflösen des Pfads den physischen Pfad als Stamm.

    Wenn Sie einen Schlüsselcontainer verwenden, geben Sie an der Eingabeaufforderung Folgendes ein.

    aspnet_compiler -p physicalOrRelativePath -v / targetPath -keycontainer keyContainer.snk -aptca
    

    Der targetPath-Parameter ist ein physischer Pfad zum Zielverzeichnis.

Siehe auch

Aufgaben

Gewusst wie: Vorkompilieren von ASP.NET-Websites

Weitere Ressourcen

Vorkompilieren einer ASP.NET-Website