Deklarativní zabezpečení
Syntaxe deklarativního zabezpečení využívá atributů k umístění informace o zabezpečení do metadat kódu. Atributy mohou být umístěny na úrovni sestavení, třídy nebo člena tak, aby označovaly typ požadavku, poptávky nebo přepsání, které má být použito. Požadavky jsou použity v aplikacích, které používají modul CLR (Common Language Runtime) k informování systému zabezpečení modulu runtime o oprávnění, které aplikace potřebuje nebo nechce. Požadavky a přepsání se používají v knihovnách k ochraně prostředků před volajícími nebo k přepsání výchozího nastavení chování zabezpečení.
Poznámka |
---|
V rozhraní .NET Framework verze 4 byly provedeny důležité změny v modelu zabezpečení a terminologii rozhraní .NET Framework.Další informace o těchto změnách naleznete v tématu Změny zabezpečení v rozhraní .NET Framework 4. |
Abyste mohli použít deklarativní volání zabezpečení je nutné inicializovat data o stavu objektu oprávnění tak, aby představovala určitou formu oprávnění, kterou potřebujete. Každé z předdefinovaných oprávnění má atribut, kterému je předán výčet SecurityAction popisující typ operace zabezpečení, která má být provedena. Oprávnění však také přijímají vlastní parametry. Úplný popis parametrů, které jsou specifické pro jednotlivá oprávnění, naleznete v oddíle popisující předdefinovaná oprávnění.
Následující fragment kódu ukazuje imperativní syntaxi pro vyžádání, že volající vašeho kódu mají vlastní oprávnění nazývané MyPermission. Toto oprávnění je hypotetické vlastní oprávnění a neexistuje v rozhraní .NET Framework. V tomto příkladu je deklarativní volání umístěno přímo před definici třídy. Určuje tak, že toto oprávnění bude použito na úrovni třídy. Atributu je předána struktura SecurityAction.Demand určující, že volající musí vlastnit toto oprávnění, aby bylo umožněno spuštění.
<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
Public Sub New()
'The constructor is protected by the security call.
End Sub
Public Sub MyMethod()
'This method is protected by the security call.
End Sub
Public Sub YourMethod()
'This method is protected by the security call.
End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
public MyClass()
{
//The constructor is protected by the security call.
}
public void MyMethod()
{
//This method is protected by the security call.
}
public void YourMethod()
{
//This method is protected by the security call.
}
}
Viz také
Odkaz
Koncepty
Rozšíření metadat pomocí atributů