IStackWalk 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
Code Access Security is not supported or honored by the runtime.
用于管理堆栈遍历,此堆栈遍历可确定调用堆栈中的所有调用函数是否具有访问受保护资源的所需权限。
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
- 派生
- 属性
注解
注意
代码访问安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中弃用。 使用与 CAS 相关的 API 时,最新版本的 .NET 不遵循 CAS 注释并生成错误。 开发人员应寻求实现安全任务的替代方法。
部分受信任的代码始终存在安全风险。 有时,可以操作代表无权访问资源的恶意代码执行操作。 这样,恶意代码就可以实现比允许的安全访问更高的安全性。
公共语言运行时通过在所有调用上运行堆栈演练来帮助保护托管代码免受这些攻击。 堆栈演练要求调用堆栈中的所有代码都有权访问受保护的资源。 由于尝试攻击的代码始终位于调用堆栈中的某个位置,因此无法超过其自己的安全权限。
方法
Assert() |
断言调用代码可以访问当前权限对象所标识的资源,即使尚未对堆栈中的高级调用方授予访问该资源的权限。 |
Demand() |
在运行时确定调用堆栈中的所有调用方是否已被授予当前权限对象所指定的权限。 |
Deny() |
将导致通过调用代码传递的当前对象的每个 Demand() 失败。 |
PermitOnly() |
导致所有对象的每个 Demand()(除了通过调用代码的当前一个)失败,即使调用堆栈中较高级别的代码已被授予访问其他资源的权限。 |