Používání knihoven z částečně důvěryhodného kódu

PoznámkaPoznámka

Toto téma řeší chování sestavení se silným názvem a se týká pouze úroveň 1 sestavení.Sestavení Transparentní kód pro zabezpečení, úroveň 2 v rozhraní .NET Framework verze 4 nebo novějším nejsou ovlivněny silnými názvy.Další informace o změnách v systému zabezpečení naleznete v tématu Změny zabezpečení v rozhraní .NET Framework 4.

Spravované aplikace, které přijímají méně než úplný vztah důvěryhodnosti z karantény nebo hostitele není povoleno volat sdílené knihovny pokud jim pomocí knihovny Zapisovatel konkrétně umožňuje AllowPartiallyTrustedCallersAttribute atributu. Proto si autoři aplikace musí být vědomi, že některé knihovny pro ně nebudou k dispozici z částečně důvěryhodného kontextu. Standardně všechny kódu, spustí částečné důvěryhodnosti izolovaného prostoru a není v seznamu plně důvěryhodných sestavení je částečně důvěryhodný. Pokud očekáváte kód spuštěn z částečně důvěryhodného kontextu nebo jen částečně důvěryhodného kódu, nemají o informace v této části. Pokud však budete psát kód, který musí interaktivně pracovat s částečně důvěryhodným kódem nebo pracovat z částečně důvěryhodného kontextu, je třeba zvážit následující faktory:

  • Knihovny musí být podepsány silným názvem s cílem být sdíleny ve více aplikacích. Silné názvy umožnit kódu do globální mezipaměť sestavení (GAC) nebo přidány do seznamu plně důvěryhodných prostorová izolace AppDomain, a umožní spotřebitelům ověřte, že určitou část kódu, mobilní skutečně pochází z můžete.

  • Standardně silným názvem úroveň 1 provedení implicitní sdílené knihovny LinkDemand pro úplný vztah důvěryhodnosti automaticky, bez knihovny Zapisovatel museli podnikat.

  • Pokud volající nemá úplný vztah důvěryhodnosti, ale stále se pokouší volat tuto knihovnu, modul runtime vyvolá SecurityException a volající nemá povoleno vytvořit propojení na knihovnu.

  • Aby bylo možné zakázat automatický LinkDemand a zabránit vyvolání výjimky, můžete umístit atribut AllowPartiallyTrustedCallersAttribute na rozsah sestavení sdílené knihovny. Tento atribut umožňuje vašim knihovnám být volány z částečně důvěryhodného spravovaného kódu.

  • Částečně důvěryhodného kódu, který je udělen přístup k knihovna s tímto atributem podléhá stále další omezení definované AppDomain.

  • Neexistuje žádný programový způsob pro částečně důvěryhodný kód pro volání knihovny, která nemá atribut AllowPartiallyTrustedCallersAttribute.

Knihovny, které jsou soukromé pro určitou aplikaci, nevyžadují silný název nebo atribut AllowPartiallyTrustedCallersAttribute a nemohou být odkazovány potenciálně škodlivým kódem mimo aplikaci. Takový kód je chráněna proti zneužití záměrného nebo nezáměrného částečně důvěryhodného kódu mobilní aniž by museli provádět žádné další vývojáře.

Měli byste zvážit explicitní povolení používání částečně důvěryhodného kódu pro následující typy kódu:

  • Kód, který byl usilovně testován pro slabá místa zabezpečení a je v souladu s pokyny popsanými v Pokyny zabezpečení kódování.

  • Knihovny kódu se silným názvem napsané specificky pro částečně důvěryhodné scénáře.

  • Všechny komponenty (ať již částečně nebo plně důvěryhodné) podepsáno silným názvem volanou kód, který stažených z Internetu.

PoznámkaPoznámka

Některé třídy v.Knihovna tříd .NET Framework nemají AllowPartiallyTrustedCallersAttribute atributu a nemůže být volána částečně důvěryhodného kódu.See .NET Framework sestavení označená AllowPartiallyTrustedCallersAttribute seznam tříd, které mohou být volány částečně důvěryhodného kódu.

Viz také

Koncepty

Zabezpečení přístupu kódu

Historie změn

Datum

Poslední dokumenty

Důvod

Červenec 2010

Menší aktualizace obsahu.

Oprava chyby obsahu