Delen via


Procedure: De functie voor het overslaan van sterke namen uitschakelen

Vanaf .NET Framework versie 3.5 Service Pack 1 (SP1) worden handtekeningen met een sterke naam niet gevalideerd wanneer een assembly wordt geladen in een volledig vertrouwensobject AppDomain , zoals de standaardinstelling AppDomain voor de MyComputer zone. Dit wordt de functie voor het overslaan van sterke namen genoemd. In een omgeving met volledige vertrouwensrelatie wordt er altijd behoefte aan StrongNameIdentityPermission geslaagde, volledig vertrouwde assembly's, ongeacht hun handtekening. De enige beperking is dat de assembly volledig moet worden vertrouwd omdat de zone volledig wordt vertrouwd. Omdat de sterke naam geen bepalende factor is onder deze omstandigheden, is er geen reden om deze te valideren. Het omzeilen van de validatie van sterke-naamhandtekeningen biedt aanzienlijke prestatieverbeteringen.

De bypass-functie is van toepassing op alle assembly's met volledige vertrouwensrelatie die niet vertragingsondertekend is en die wordt geladen in een volledige vertrouwensrelatie AppDomain vanuit de map die is opgegeven door ApplicationBase de eigenschap.

U kunt de bypassfunctie voor alle toepassingen op een computer overschrijven door een registersleutelwaarde in te stellen. U kunt de instelling voor één toepassing overschrijven met behulp van een toepassingsconfiguratiebestand. U kunt de bypassfunctie voor één toepassing niet opnieuw opgeven als deze is uitgeschakeld door de registersleutel.

Wanneer u de bypassfunctie overschrijft, wordt de sterke naam alleen gevalideerd voor juistheid; het is niet gecontroleerd op een StrongNameIdentityPermission. Als u een specifieke sterke naam wilt bevestigen, moet u die controle afzonderlijk uitvoeren.

Belangrijk

De mogelijkheid om validatie van sterke namen af te dwingen, is afhankelijk van een registersleutel, zoals beschreven in de volgende procedure. Als een toepassing wordt uitgevoerd onder een account dat geen toegangsbeheerlijstmachtiging (ACL) heeft voor toegang tot die registersleutel, is de instelling ineffectief. U moet ervoor zorgen dat ACL-rechten zijn geconfigureerd voor deze sleutel, zodat deze kan worden gelezen voor alle assembly's.

De functie voor het overslaan van sterke namen uitschakelen voor alle toepassingen

  • Maak op 32-bits computers in het systeemregister een DWORD-vermelding met de waarde 0 met de naam AllowStrongNameBypass HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework-sleutel.

  • Maak op 64-bits computers in het systeemregister een DWORD-vermelding met de waarde 0 met de naam AllowStrongNameBypass HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework en HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NETFramework-sleutels.

De functie voor het overslaan van sterke namen voor één toepassing uitschakelen

  1. Open of maak het toepassingsconfiguratiebestand.

    Zie de sectie Toepassingsconfiguratiebestanden in Apps configureren voor meer informatie over dit bestand.

  2. Voeg de volgende vermelding toe:

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

U kunt de bypass-functie voor de toepassing herstellen door de instelling van het configuratiebestand te verwijderen of door het kenmerk in te stellen op true.

Notitie

U kunt validatie van sterke namen alleen in- en uitschakelen voor een toepassing als de bypass-functie is ingeschakeld voor de computer. Als de bypass-functie is uitgeschakeld voor de computer, worden sterke namen gevalideerd voor alle toepassingen en kunt u de validatie voor één toepassing niet omzeilen.

Zie ook