Postupy: Zakázání funkce obejití silného názvu
Počínaje rozhraním .NET Framework verze 3.5 Service Pack 1 (SP1) se podpisy silného názvu neověřují při načtení sestavení do objektu plné důvěryhodnosti AppDomain , jako je výchozí AppDomain hodnota MyComputer
zóny. Tato funkce se označuje jako funkce obejití silného názvu. V prostředí s úplným vztahem důvěryhodnosti musí být požadavky vždy StrongNameIdentityPermission úspěšné pro podepsaná sestavení s úplným vztahem důvěryhodnosti bez ohledu na jejich podpis. Jediným omezením je, že sestavení musí být plně důvěryhodné, protože jeho zóna je plně důvěryhodná. Vzhledem k tomu, že silný název není určujícím faktorem za těchto podmínek, neexistuje důvod, proč by se ověřil. Obejití ověřování podpisů silného názvu přináší významná vylepšení výkonu.
Funkce obejití se vztahuje na jakékoli sestavení s úplným vztahem důvěryhodnosti, které není podepsáno zpožděním a které je načteno do jakéhokoli úplného vztahu důvěryhodnosti AppDomain z adresáře určeného jeho ApplicationBase vlastností.
Funkci obejití pro všechny aplikace v počítači můžete přepsat nastavením hodnoty klíče registru. Nastavení jedné aplikace můžete přepsat pomocí konfiguračního souboru aplikace. Funkci obejití pro jednu aplikaci nelze obnovit, pokud byla zakázána klíčem registru.
Při přepsání funkce obejití je silný název ověřen pouze pro správnost; není kontrolována pro .StrongNameIdentityPermission Pokud chcete potvrdit konkrétní silný název, musíte provést tuto kontrolu samostatně.
Důležité
Schopnost vynutit ověření silného názvu závisí na klíči registru, jak je popsáno v následujícím postupu. Pokud je aplikace spuštěná pod účtem, který nemá oprávnění seznamu řízení přístupu (ACL) pro přístup k danému klíči registru, nastavení je neefektivní. Musíte zajistit, aby byla pro tento klíč nakonfigurovaná práva seznamu ACL, aby bylo možné je číst pro všechna sestavení.
Zakázání funkce obejití silného názvu pro všechny aplikace
V 32bitových počítačích vytvořte v systémovém registru položku DWORD s hodnotou 0 s názvem
AllowStrongNameBypass
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework key.V 64bitových počítačích vytvořte v systémovém registru položku DWORD s hodnotou 0 s názvem
AllowStrongNameBypass
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NetFramework klíče.
Zakázání funkce obejití silného názvu pro jednu aplikaci
Otevřete nebo vytvořte konfigurační soubor aplikace.
Další informace o tomto souboru najdete v části Konfigurační soubory aplikace v části Konfigurace aplikací.
Přidejte následující položku:
<configuration> <runtime> <bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
Funkci obejití aplikace můžete obnovit odebráním nastavení konfiguračního souboru nebo nastavením atributu na true
.
Poznámka:
Ověření silného názvu můžete pro aplikaci zapnout a vypnout jenom v případě, že je pro počítač povolená funkce obejití. Pokud je funkce obejití pro počítač vypnutá, jsou silné názvy ověřeny pro všechny aplikace a nemůžete obejít ověření jedné aplikace.