Vytvoření vlastního kódu přístupových oprávnění

Rozhraní .NET Framework poskytuje sadu tříd s kódem k oprávnění přístupu, které jsou určeny k ochraně určité sady prostředků a operací, zaměřené na tyto prostředky, vystavené prostřednictvím rozhraní .NET Framework. Tyto třídy oprávnění jsou stručně popsány v tématu Oprávnění a podrobně v referenční dokumentaci pro každou třídu oprávnění. Ve většině prostředí jsou odpovídající vestavěná přístupová oprávnění kódu. Avšak v některých situacích může být vhodné definovat vlastní třídu přístupového oprávnění kódu. Toto téma popisuje, kdy, proč a jak definovat vlastní třídy přístupového oprávnění kódu.

Pokud definujete komponentu nebo knihovnu tříd, která získá přístup k prostředku, který není ve vestavěné třídě oprávnění, ale musí být chráněn před neoprávněným kódem, zvažte vytvoření vlastní třídy přístupového oprávnění kódu. Pokud chcete provádět deklarativní požadavky pro své vlastní oprávnění, musíte definovat také třídu atribut pro oprávnění. Poskytování těchto tříd a vytváření požadavků na oprávnění z vaší knihovny tříd umožňuje modulu runtime zabránit neoprávněnému kódu v přístupu k danému prostředku a umožňuje správci konfigurovat přístupová práva.

Existují další situace, ve kterých mohou být vhodná vlastní oprávnění. Když vestavěná třída přístupového oprávnění kódu chrání prostředek, ale dostatečně nekontroluje přístup k danému prostředku, bude pravděpodobně nutné vlastní přístupové oprávnění kódu. Například aplikace mohou používat záznamy pracovníků, kde pro každého zaměstnance je záznam uložen v samostatném souboru; v takovém případě přístup pro čtení a zápis může být kontrolován nezávisle pro různé typy dat zaměstnanců. Nástroj pro interní správu může být povolen pro čtení určitých částí souboru zaměstnance, ale nikoli změnu těchto oddílů. Ve skutečnosti ani nemusí mít povoleno přečíst některé oddíly.

Vlastní přístupová oprávnění kódu jsou také vhodná v případech existence vestavěných oprávnění, ale nejsou definovány takovým způsobem, který umožňuje chránit prostředek vhodným způsobem. Například zde může být případem funkce uživatelského rozhraní, jako je například možnost vytvořit nabídky, které musí být chráněny, ale nejsou chráněny vestavěnou třídou UIPermission. V takovém případě můžete vytvořit vlastní oprávnění k ochraně schopnosti vytvářet nabídky.

Kdykoli je to možné, oprávnění by se neměly překrývat. Mít více než jedno oprávnění chránící prostředek představuje významný problém správcům systému, kteří musí vhodně čelit překrývajícím se oprávnění při každé jejich konfiguraci práv pro přístup k tomuto prostředku.

Implementace vlastních přístupových oprávnění kódu zahrnuje následující kroky, z nichž některé jsou volitelné. Každý krok je popsán v samostatném tématu.

  1. Návrh třídy oprávnění.

  2. Implementujte rozhraní IPermission a IUnrestrictedPermission.

  3. Implementujte rozhraní ISerializable, pokud je to nutné pro výkon nebo podporu zvláštních datových typů.

  4. Zpracujte kódování a dekódování XML.

  5. Přidejte podporů pro deklarativní zabezpečení implementací třídy Atribut.

  6. Žádejte vlastní oprávnění pro vaše oprávnění, kde je to vhodné.

Viz také

Odkaz

FileIOPermission

UIPermission

IPermission

IUnrestrictedPermission

ISerializable

Koncepty

Zabezpečení přístupu kódu

Oprávnění zabezpečení

Rozšíření metadat pomocí atributů

Navrhování oprávnění

Přidání deklarativní podpory zabezpečení

Požadování vlastního oprávnění