IStackWalk Interfejs

Definicja

Przestroga

Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}

Zarządza przewodnikiem stosu, który określa, czy wszyscy wywołujący w stosie wywołań mają wymagane uprawnienia dostępu do chronionego zasobu.

public interface class IStackWalk
public interface IStackWalk
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public interface IStackWalk
[System.Runtime.InteropServices.ComVisible(true)]
public interface IStackWalk
type IStackWalk = interface
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type IStackWalk = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IStackWalk = interface
Public Interface IStackWalk
Pochodne
Atrybuty

Uwagi

Przestroga

Zabezpieczenia dostępu kodu (CAS) zostały uznane za przestarzałe we wszystkich wersjach .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

Częściowo zaufany kod zawsze stanowi zagrożenie bezpieczeństwa. Czasami można manipulować w celu wykonywania akcji w imieniu złośliwego kodu, który nie ma uprawnień dostępu do zasobu. W ten sposób złośliwy kod może osiągnąć wyższy dostęp zabezpieczeń niż powinien być dozwolony.

Środowisko uruchomieniowe języka wspólnego pomaga chronić kod zarządzany przed tymi atakami, uruchamiając stos na wszystkich wywołaniach. Przewodnik stosu wymaga, aby cały kod w stosie wywołań miał uprawnienia dostępu do chronionego zasobu. Ponieważ kod próbujący zaatakować zawsze będzie gdzieś w stosie wywołań, nie będzie mógł przekroczyć własnych uprawnień zabezpieczeń.

Metody

Assert()

Potwierdza, że kod wywołujący może uzyskać dostęp do zasobu zidentyfikowany przez bieżący obiekt uprawnień, nawet jeśli obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu.

Demand()

Określa w czasie wykonywania, czy wszystkie obiekty wywołujące w stosie wywołań otrzymały uprawnienia określone przez bieżący obiekt uprawnień.

Deny()

Powoduje, że każdy Demand() dla bieżącego obiektu, który przechodzi przez kod wywołujący, kończy się niepowodzeniem.

PermitOnly()

Powoduje, że każdy Demand() dla wszystkich obiektów z wyjątkiem bieżącego, który przechodzi przez kod wywołujący kończy się niepowodzeniem, nawet jeśli kod wyższy w stosie wywołań otrzymał uprawnienie dostępu do innych zasobów.

Dotyczy