Share via


Gewusst wie: Deaktivieren des Strong-Name-Bypass-Features

Aktualisiert: Juli 2008

Ab .NET Framework Version 3.5 Service Pack 1 (SP1) werden Signaturen mit starkem Namen nicht überprüft, wenn eine Assembly in ein vollständig vertrauenswürdiges AppDomain-Objekt, wie etwa die standardmäßige AppDomain für die MyComputer-Zone, geladen wird. Dies wird als Strong-Name-Bypass-Feature bezeichnet. In einer vollständig vertrauenswürdigen Umgebung sind Forderungen nach StrongNameIdentityPermission für signierte, vollständig vertrauenswürdige Assemblys unabhängig von deren Signatur stets erfolgreich. Die einzige Beschränkung ist, dass die Assembly voll vertrauenswürdig sein muss, da deren Zone voll vertrauenswürdig ist. Da der starke Name unter diesen Bedingungen kein entscheidender Faktor ist, besteht keine Veranlassung für dessen Überprüfung. Die Umgehung der Validierung von Signaturen mit starkem Namen hat bedeutende Leistungsverbesserungen zur Folge.

Das Bypass-Feature gilt für jede vollständig vertrauenswürdige Assembly, die nicht verzögert signiert wird und die in eine vollständig vertrauenswürdige AppDomain aus dem durch ihre ApplicationBase-Eigenschaft festgelegten Verzeichnis geladen wird.

Sie können das Bypass-Feature für alle Anwendungen auf einem Computer durch Festlegen eines Registrierungsschlüssels überschreiben. Sie können die Einstellung für eine einzelne Anwendung mit einer Anwendungskonfigurationsdatei überschreiben. Sie können das Bypass-Feature nicht für eine einzelne Anwendung wiederherstellen, wenn dieses durch den Registrierungsschlüssels deaktiviert wurde.

Wenn Sie das Bypass-Feature überschreiben, wird der starke Name nur auf Korrektheit hin überprüft, nicht jedoch auf eine StrongNameIdentityPermission. Wenn Sie einen bestimmten starken Namen bestätigen möchten, müssen Sie diese Überprüfung separat vornehmen.

Wichtiger Hinweis:

Die Möglichkeit, die Validierung eines starken Namens zu erzwingen, ist hängt von einem Registrierungsschlüssel ab. Dies wird in der folgenden Prozedur beschrieben. Wenn eine Anwendung unter einem Konto ausgeführt wird, das nicht über die Zugriffssteuerungslisten (ACL)-Berechtigung zum Zugriff auf diesen Registrierungsschlüssel verfügt, ist die Einstellung wirkungslos. Stellen Sie sicher, dass ACL-Berechtigungen für diesen Schlüssel konfiguriert werden, damit er für alle Assemblys lesbar ist.

So deaktivieren Sie das Strong-Name-Bypass-Feature für alle Anwendungen

  • Erstellen Sie auf 32-Bit-Computern in der Systemregistrierung einen Unterschlüssel unter dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework. Verwenden Sie den Schlüsselnamen AllowStrongNameBypass mit dem DWORD-Wert 0.

    - oder -

  • Erstellen Sie auf 64-Bit-Computern in der Systemregistrierung einen Unterschlüssel unter dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework. Verwenden Sie den Schlüsselnamen AllowStrongNameBypass mit dem DWORD-Wert 0. Erstellen Sie denselben Unterschlüssel unter dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework.

So deaktivieren Sie das Strong-Name-Bypass-Feature für eine einzelne Anwendung

  1. Öffnen oder erstellen Sie die Anwendungskonfigurationsdatei.

    Weitere Informationen zu dieser Datei finden Sie unter Anwendungskonfigurationsdateien.

  2. Fügen Sie den folgenden Eintrag hinzu:

    <configuration>
      <runtime>
         < bypassTrustedAppStrongNames enabled="false" />
      </runtime>
    </configuration>
    

Sie können das Bypass-Feature für die Anwendung wiederherstellen, indem Sie die Konfigurationsdateieinstellung entfernen oder das Attribut auf "true" festlegen.

Hinweis:

Sie können die Überprüfung von starken Namen für eine Anwendung nur ein- und ausschalten, wenn das Bypass-Feature für diesen Computer aktiviert ist. Wenn das Bypass-Feature für den Computer ausgeschaltet ist, werden starke Namen für alle Anwendungen überprüft, und Sie können die Überprüfung nicht für eine einzelne Anwendung umgehen.

Siehe auch

Referenz

Strong Name-Tool (Sn.exe)

<bypassTrustedAppStrongNames>-Element

Weitere Ressourcen

Erstellen und Verwenden von Assemblys mit starkem Namen

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Thema hinzugefügt.

SP1-Featureänderung.