CodeAccessPermission.Deny Metoda

Definicja

Przestroga

Ten interfejs API jest teraz przestarzały.

Przestroga

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.

Zapobiega wywoływaniu obiektów wywołujących w stosie wywołań przy użyciu kodu wywołującego tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.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 ()

Implementuje

Atrybuty

Wyjątki

Istnieje już aktywny Deny() dla bieżącej ramki.There is already an active Deny() for the current frame.

Uwagi

Ważne

DenyMetoda powinna być używana tylko w celu ochrony zasobów przed przypadkowym dostępem przez w pełni zaufany kod.The Deny method should be used only to protect resources from accidental access by fully trusted code. Nie należy używać go do ochrony zasobów przed zamierzonym nieprawidłowym użyciem przez kod niezaufany.It should not be used to protect resources from intentional misuse by untrusted code. Na przykład, jeśli metoda A wystawia Deny dla uprawnienia, a następnie wywołuje metodę B , Metoda B może overtly zastąpić elementu Deny przez wygenerowanie 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. Wywołana metoda jest zawsze wyższa w stosie.The called method is always higher in the stack. W związku z tym, jeśli metoda B próbuje uzyskać dostęp do chronionego zasobu, system zabezpieczeń rozpocznie sprawdzanie pod kątem uprawnień, ponieważ metoda B jest bezpośrednim obiektem wywołującym, a następnie analizuje stos, aby potwierdzić, że na stosie nie ma lub nie jest Deny PermitOnly niższy.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. Metoda B , która próbuje uzyskać dostęp do zasobu, może przestać przechodzenie stosu natychmiast przy użyciu Assert metody.Method B, which is trying to access the resource, can stop the stack walk immediately by using the Assert method. W takim przypadku Deny umieszczenie w stos według metody A (Metoda wywołująca) nigdy nie jest odnajdywane.In that case, the Deny placed on the stack by method A (the calling method) is never discovered.

Ta metoda uniemożliwia wywoływanie obiektów wywołujących wyższego poziomu w stosie wywołań dostępu do chronionego zasobu za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli Ci wywołujący mają uprawnienia dostępu do niej.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. Stos wywołań jest zazwyczaj reprezentowany jako rosnący, więc metody wyższe w metodach wywołania stosu wywołań są niższe w stosie wywołań.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 program może ograniczyć odpowiedzialność programisty lub zapobiec przypadkowemu występowaniu problemów z zabezpieczeniami, ponieważ pomaga zapobiec metodzie, która wywołuje Deny z użycia w celu uzyskania dostępu do zasobów chronionych przez uprawnienie odmowa.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. Jeśli metoda wywołuje Deny uprawnienie, a Demand dla tego uprawnienia wywoływany przez obiekt wywołujący jest niższy w stosie wywołań, sprawdzanie zabezpieczeń zakończy się niepowodzeniem, gdy zostanie osiągnięty 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.

Wywołanie Deny jest skuteczne do momentu powracania kodu wywołującego do obiektu wywołującego.The call to Deny is effective until the calling code returns to its caller. Tylko jeden Deny może być aktywny w ramce.Only one Deny can be active on a frame. Próba wywołania, Deny gdy element aktywny Deny istnieje w ramce, spowoduje wystąpienie elementu SecurityException .An attempt to call Deny when an active Deny exists on the frame results in a SecurityException. Wywołaj RevertDeny lub, RevertAll Aby usunąć aktywny Deny .Call RevertDeny or RevertAll to remove an active Deny. Deny jest ignorowany dla uprawnień, które nie zostały przyznane, ponieważ żądanie tego uprawnienia nie powiedzie się.Deny is ignored for a permission not granted because a demand for that permission will not succeed.

Uwagi dotyczące dziedziczenia

Nie można zastąpić tej metody.You cannot override this method.

Dotyczy