Gör så här: Inaktivera funktionen för att kringgå starka namn
Från och med .NET Framework version 3.5 Service Pack 1 (SP1) verifieras inte starka namnsignaturer när en sammansättning läses in i ett fullständigt förtroendeobjekt AppDomain , till exempel standardvärdet AppDomain för MyComputer
zonen. Detta kallas funktionen för att kringgå starka namn. I en miljö med fullständigt förtroende är kraven på StrongNameIdentityPermission att alltid lyckas för signerade, fullständigt betrodda sammansättningar oavsett signatur. Den enda begränsningen är att sammansättningen måste vara helt betrodd eftersom dess zon är helt betrodd. Eftersom det starka namnet inte är en avgörande faktor under dessa förhållanden finns det ingen anledning att verifiera det. Genom att kringgå verifieringen av signaturer med starka namn ger det betydande prestandaförbättringar.
Förbikopplingsfunktionen gäller för alla sammansättningar med fullständigt förtroende som inte är fördröjda och som läses in i alla fullständiga förtroenden AppDomain från den katalog som anges av dess ApplicationBase egenskap.
Du kan åsidosätta förbikopplingsfunktionen för alla program på en dator genom att ange ett registernyckelvärde. Du kan åsidosätta inställningen för ett enda program med hjälp av en programkonfigurationsfil. Du kan inte återställa förbikopplingsfunktionen för ett enda program om den har inaktiverats av registernyckeln.
När du åsidosätter funktionen kringgå verifieras det starka namnet endast för korrekthet. det är inte markerat för en StrongNameIdentityPermission. Om du vill bekräfta ett specifikt starkt namn måste du utföra kontrollen separat.
Viktigt!
Möjligheten att framtvinga verifiering av starka namn beror på en registernyckel, enligt beskrivningen i följande procedur. Om ett program körs under ett konto som inte har åtkomstkontrollista (ACL) behörighet att komma åt registernyckeln är inställningen ineffektiv. Du måste se till att ACL-rättigheter har konfigurerats för den här nyckeln så att den kan läsas för alla sammansättningar.
Inaktivera funktionen för att kringgå starka namn för alla program
På 32-bitarsdatorer skapar du i systemregistret en DWORD-post med värdet 0 med namnet
AllowStrongNameBypass
under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework-nyckel.På 64-bitarsdatorer skapar du i systemregistret en DWORD-post med värdet 0 med namnet
AllowStrongNameBypass
under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework och HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NETFramework-nycklar.
Inaktivera funktionen för att kringgå starka namn för ett enda program
Öppna eller skapa programkonfigurationsfilen.
Mer information om den här filen finns i avsnittet Programkonfigurationsfiler i Konfigurera appar.
Lägg till följande post:
<configuration> <runtime> <bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
Du kan återställa förbikopplingsfunktionen för programmet genom att ta bort konfigurationsfilinställningen eller genom att ange attributet till true
.
Kommentar
Du kan aktivera och inaktivera verifiering av starka namn för ett program endast om funktionen bypass är aktiverad för datorn. Om förbikopplingsfunktionen har inaktiverats för datorn verifieras starka namn för alla program och du kan inte kringgå verifieringen för ett enda program.