Oprávnění zabezpečení
Modul CLR (Common Language Runtime) umožňuje provádět pouze ty operace, pro které má kód oprávnění k provádění. Vynutit omezení spravovaný kód používá runtime objektů nazývaných oprávnění. Modul runtime poskytuje v několika oborech názvů tříd předdefinovaných oprávnění a podporuje také návrh a implementaci třídy vlastní oprávnění.
Existují dva typy oprávnění a každý má svůj účel:
Oprávnění přístupu ke kódupředstavují přístup k chráněnému prostředku nebo chráněné operace provádět.
Oprávnění zabezpečení založených na rolíchposkytují mechanismus pro zjištění, zda uživatel (nebo agent jednající jménem uživatele) má určitou identitu nebo je členem určité role. PrincipalPermission je jediné oprávnění zabezpečení založené na rolích.
Oprávnění zabezpečení lze ve formuláři oprávnění třídy (zabezpečení naléhavých) nebo atribut, který představuje třídu oprávnění (deklarativní zabezpečení). Základní třída pro oprávnění zabezpečení je System.Security.CodeAccessPermission; základní třída pro atributy oprávnění zabezpečení je System.Security.Permissions.CodeAccessSecurityAttribute.
Aplikace v podobě sestavení, sadu oprávnění udělena v okamžiku, kdy je načten do domény aplikace. Granty jsou obvykle provedena pomocí sady předdefinovaných oprávnění, která jsou určena SecurityManager.GetStandardSandbox metody. Sada udělení poskytuje oprávnění, které má kód k dispozici. Modul runtime uděluje oprávnění na základě umístění kód původu (například místní počítač, Místní intranet nebo Internet). Kód můžete také udělit zvláštní oprávnění Pokud načten do karanténě. Další informace o spuštění kódu v karanténě, viz Postupy: Spustit částečně důvěryhodný kód v izolovaném prostoru.
Primární použití oprávnění jsou následující:
Kód knihovny může požadovat specifická oprávnění jeho volajícím. Pokud umístíte Demand pro oprávnění ve svém kódu, všechen kód, který používá váš kód, je očekáván, že má oprávnění ke spuštění. Požadavky mohou být použity ke zjištění, zda volající mají přístup k určenému prostředku nebo zjistit identitu volajícího.
Kód může použít oprávnění k odepření přístupu k prostředkům, které si přeje chránit. Můžete použít SecurityAction.PermitOnly Určete omezené oprávnění nastavit, implicitně odmítá všechny ostatní oprávnění. Však nedoporučujeme použití PermitOnly Zakázat přístup ochrana proti záměrnému zneužití. Odepřená oprávnění přepsat nazývá sestavení, které mají oprávnění implicitně odmítnutých v sadě jejich poskytnutí, provedením SecurityAction.Assert pro všechna oprávnění, které chtějí použít. Například pokud je povoleno pouze UIPermission a sestavení dědičně s názvem FileIOPermission, sestavení lze provést jednoduše Assert pro FileIOPermission a provádět operace souboru. Jediným způsobem, jak bezpečně chránit prostředky před nedůvěryhodným kódem v odkazovaných sestaveních, je provést tento kód se sadou udělení, která neobsahuje tato oprávnění.
Viz také
Koncepty
Oprávnění zabezpečení založených na rolích