CodeAccessPermission.Deny メソッド

定義

注意事項

この API は現在使われていません。

注意事項

Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスで指定されたリソースにアクセスしないようにします。Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

public:
 virtual void Deny();
public:
 void Deny();
[System.Obsolete]
public void Deny ();
public void Deny ();
[System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public void Deny ();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Deny ();
[<System.Obsolete>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
[<System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
[<System.Diagnostics.Conditional("FEATURE_MONO_CAS")>]
member this.Deny : unit -> unit
Public Sub Deny ()

実装

属性

例外

現在のフレームにはアクティブな Deny() が既に存在しています。There is already an active Deny() for the current frame.

注釈

重要

メソッドを使用するのは、 Deny 完全に信頼されているコードによる偶発的なアクセスからリソースを保護する場合のみにしてください。The Deny method should be used only to protect resources from accidental access by fully trusted code. 信頼されていないコードによる意図的誤用からリソースを保護するためには使用しないでください。It should not be used to protect resources from intentional misuse by untrusted code. たとえば、メソッド A Deny がアクセス許可に対してを発行してからメソッドを呼び出す場合、 B メソッド B はを発行してをオーバーライド overtly ことができ Deny Assert ます。For example, if method A issues a Deny for a permission and then calls method B, method B can overtly override the Deny by issuing an Assert. 呼び出されたメソッドは常にスタック内で上位になります。The called method is always higher in the stack. したがって、メソッド B が保護されたリソースにアクセスしようとすると、セキュリティシステムは、メソッドが直前の呼び出し元であるため、そのリソースを使用してアクセス許可の確認を開始し B ます。その後、スタック内にスタックがあるかどうかを確認するためにスタックをステップダウンし Deny PermitOnly ます。Therefore, if method B tries to access a protected resource, the security system begins checking for permissions with it because method B is the immediate caller, and then walks down the stack to confirm that there is no Deny or PermitOnly lower in the stack. Bリソースにアクセスしようとしているメソッドは、メソッドを使用してすぐにスタックウォークを停止できます AssertMethod B, which is trying to access the resource, can stop the stack walk immediately by using the Assert method. この場合、 Deny メソッドによってスタックに配置されたが A 検出されることはありません。In that case, the Deny placed on the stack by method A (the calling method) is never discovered.

このメソッドは、呼び出し履歴の上位にある呼び出し元が、このメソッドを呼び出すコードを通じて保護されたリソースにアクセスできないようにします。呼び出し元にアクセス許可が付与されている場合でも同様です。This method prevents callers higher in the call stack from accessing the protected resource through the code that calls this method, even if those callers have been granted permission to access it. 呼び出し履歴は、通常、コールスタックの上位にあるメソッドが呼び出し履歴の下位にあるメソッドを呼び出すように、拡張ダウンとして表されます。The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack.

Deny では、 Deny 拒否されたアクセス許可によって保護されているリソースにアクセスするためにを呼び出すメソッドが使用されないようにするため、プログラマの責任を制限できます。また、偶発的なセキュリティの問題を防ぐのにも役立ちます。Deny can limit the liability of the programmer or help prevent accidental security issues because it helps prevent the method that calls Deny from being used to access the resource protected by the denied permission. メソッドが Deny アクセス許可に対してを呼び出し、 Demand そのアクセス許可のが呼び出し履歴の下位にある呼び出し元によって呼び出された場合、そのセキュリティチェックはに到達すると失敗し Deny ます。If a method calls Deny on a permission, and if a Demand for that permission is invoked by a caller lower in the call stack, that security check will fail when it reaches the Deny.

の呼び出しは、呼び出し元のコードが呼び出し Deny 元に戻るまで有効です。The call to Deny is effective until the calling code returns to its caller. 1つの Deny フレームでアクティブにできるのは1つだけです。Only one Deny can be active on a frame. フレームにアクティブなが存在するときにを呼び出そうとすると Deny Deny 、が発生 SecurityException します。An attempt to call Deny when an active Deny exists on the frame results in a SecurityException. アクティブなを RevertDeny 削除するには、または RevertAll を呼び出し Deny ます。Call RevertDeny or RevertAll to remove an active Deny. Deny は、許可されていないアクセス許可の要求が成功しないため、このアクセス許可は無視されます。Deny is ignored for a permission not granted because a demand for that permission will not succeed.

注意 (継承者)

このメソッドをオーバーライドすることはできません。You cannot override this method.

適用対象