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

Aktualisiert: August 2010

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 Validierung. 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 HinweisWichtig

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 unter dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework einen DWORD-Eintrag mit dem Wert 0 und dem Namen AllowStrongNameBypass.

  • Erstellen Sie auf 64-Bit-Computern in der Systemregistrierung unter den Schlüsseln HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework und HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework einen DWORD-Eintrag mit dem Wert 0 und dem Namen AllowStrongNameBypass.

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 im Abschnitt zu Anwendungskonfigurationsdateien in Konfigurationsdateien.

  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.

HinweisHinweis

Sie können die Validierung 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 validiert, und Sie können die Validierung nicht für eine einzelne Anwendung umgehen.

Siehe auch

Referenz

Sn.exe (Strong Name-Tool)

<bypassTrustedAppStrongNames>-Element

Konzepte

Erstellen und Verwenden von Assemblys mit starkem Namen

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

August 2010

Informationen zum Registrierungseintrag wurden aktualisiert.

Kundenfeedback.