IStackWalk Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |