CodeAccessPermission.Deny 方法

防止调用堆栈中处于较高位置的调用方通过调用此方法的代码来访问由当前实例指定的资源。

**命名空间:**System.Security
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Sub Deny
用法
Dim instance As CodeAccessPermission

instance.Deny
public void Deny ()
public:
virtual void Deny () sealed
public final void Deny ()
public final function Deny ()

异常

异常类型 条件

SecurityException

当前框架已经有一个活动的 Deny

备注

此方法防止调用堆栈中处于较高位置的调用方通过调用此方法的代码来访问受保护的资源(即使已向这些调用方授予访问该资源的权限)。调用堆栈一般表示为缩小,以便调用堆栈中较高的方法可调用调用堆栈中较低的方法。

Deny 可限制程序员的责任或帮助防止出现意外的安全问题,原因是它可以防止他人使用可调用 Deny 的方法来访问由被拒绝的权限保护的资源。如果某个方法针对权限调用 Deny,并且如果调用堆栈中的低级调用方调用了该权限的 Demand,则当安全检查到达 Deny 时将失败。

在调用代码返回到它的调用方之前,对 Deny 的调用一直有效。一个帧上只能有一个活动的 Deny。如果试图在帧上存在活动 Deny 时调用 Deny,则会导致 SecurityException。调用 RevertDenyRevertAll 以移除活动的 Deny。对未授予的权限忽略 Deny,因为对该权限的请求不会成功。

给继承者的说明 不能重写此方法。

示例

下面的代码示例演示如何使用 Deny 方法来阻止对当前实例指定的资源进行访问。此代码示例是为 RevertAll 方法提供的一个更大示例的一部分。

' Create a new UIPermission that allows access only to OwnClipboard.
Dim clipboardPermission As New UIPermission(UIPermissionClipboard.OwnClipboard)
' Deny access to OwnClipboard.
Console.WriteLine("Denying access to OwnClipboard")
clipboardPermission.Deny()
' Demand access to files in the specified path.
DemandOwnClipboardAccess()
' Revert the Deny.
Console.WriteLine("Reverting the Deny.")
CodeAccessPermission.RevertDeny()
DemandOwnClipboardAccess()
// Create a new UIPermission that allows access only to OwnClipboard.
UIPermission clipboardPermission = new UIPermission(UIPermissionClipboard.OwnClipboard);
// Deny access to OwnClipboard.
Console.WriteLine("Denying access to OwnClipboard");
clipboardPermission.Deny();
// Demand access to files in the specified path.
DemandOwnClipboardAccess();
// Revert the Deny.
Console.WriteLine("Reverting the Deny.");
CodeAccessPermission.RevertDeny();
DemandOwnClipboardAccess();
// Create a new UIPermission that allows access only to OwnClipboard.
UIPermission^ clipboardPermission = gcnew UIPermission(
   UIPermissionClipboard::OwnClipboard );

// Deny access to OwnClipboard.
Console::WriteLine( L"Denying access to OwnClipboard" );
clipboardPermission->Deny();

// Demand access to files in the specified path.
DemandOwnClipboardAccess();

// Revert the Deny.
Console::WriteLine( L"Reverting the Deny." );
CodeAccessPermission::RevertDeny();
DemandOwnClipboardAccess();

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

CodeAccessPermission 类
CodeAccessPermission 成员
System.Security 命名空间

其他资源

使用 Deny 方法
重写安全检查