CodeAccessPermission.Deny Metoda

Definicja

Ostrzeżenie

Ten interfejs API jest teraz przestarzały.

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 ();
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
member this.Deny : unit -> unit
Public Sub Deny ()

Implementuje

Atrybuty

Wyjątki

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

Uwagi

Ważne

Metoda Deny 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ła metodę B, Metoda B może przesłonić Deny, wydając 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 w celu potwierdzenia, że nie ma Deny lub PermitOnly niższych w stosie.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 natychmiast przerwać stos przy użyciu metody Assert.Method B, which is trying to access the resource, can stop the stack walk immediately by using the Assert method. W takim przypadku Deny umieszczane na stosie według metody A (Metoda wywołująca) nigdy nie zostanie odnalezione.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 może ograniczyć odpowiedzialność programisty lub zapobiegać przypadkowemu występowaniu problemów z zabezpieczeniami, ponieważ pomaga zapobiec metodzie wywołującej Deny z użycia w celu uzyskania dostępu do zasobu chronionego przez odmowę uprawnienia.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 na uprawnienia, a Demand dla tego uprawnienia jest wywoływana przez wywołującego niższym ze stosu wywołań, sprawdzanie zabezpieczeń zakończy się niepowodzeniem po osiągnięciu 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, aż kod wywołujący powróci 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 istnieje aktywna Deny w ramce powoduje 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ąć aktywne 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