CodeAccessPermission.Deny Metoda

Definicja

Uwaga

Ten interfejs API jest już przestarzały.

Uwaga

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łaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.

public:
 virtual 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.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
Public Sub Deny ()

Implementuje

Atrybuty

Wyjątki

Dla bieżącej ramki jest już aktywny Deny() .

Uwagi

Ważna

Metoda Deny powinna służyć tylko do ochrony zasobów przed przypadkowym dostępem przez w pełni zaufany kod. Nie należy jej używać do ochrony zasobów przed zamierzonym nieprawidłowym użyciem przez niezaufany kod. Jeśli na przykład metoda A wystawia uprawnienie, Deny a następnie wywołuje metodę B, metoda B może przesłonić Deny metodę, wydając polecenie Assert. Wywołana metoda jest zawsze wyższa w stosie. W związku z tym jeśli metoda B próbuje uzyskać dostęp do chronionego zasobu, system zabezpieczeń rozpoczyna sprawdzanie uprawnień za jego pomocą, ponieważ metoda B jest bezpośrednim obiektem wywołującym, a następnie przechodzi w dół stosu, aby potwierdzić, że nie ma Deny żadnego lub PermitOnly niższego poziomu w stosie. Metoda B, która próbuje uzyskać dostęp do zasobu, może natychmiast zatrzymać przewodnik stosu Assert przy użyciu metody . W takim przypadku metoda Deny umieszczona na stosie A (metoda wywołująca) nigdy nie zostanie odnaleziona.

Ta metoda uniemożliwia obiektom wywołującym wyższy poziom w stosie wywołań uzyskiwanie dostępu do chronionego zasobu za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli osoby wywołujące otrzymały uprawnienia dostępu do niego. Stos wywołań jest zwykle reprezentowany jako rosnący w dół, dzięki czemu metody wyższe w metodach wywołań stosu wywołań są niższe w stosie wywołań.

Deny może ograniczyć odpowiedzialność programisty lub zapobiec przypadkowym problemom z zabezpieczeniami, ponieważ pomaga zapobiec użyciu metody Deny używanej do uzyskiwania dostępu do zasobu chronionego przez odmowę uprawnień. Jeśli metoda wywołuje Deny uprawnienie, a element Demand dla tego uprawnienia jest wywoływany przez obiekt wywołujący niższy w stosie wywołań, sprawdzanie zabezpieczeń zakończy się niepowodzeniem, gdy osiągnie Denywartość .

Wywołanie metody jest Deny skuteczne, dopóki kod wywołujący nie powróci do obiektu wywołującego. Tylko jeden Deny może być aktywny na ramce. Próba wywołania Deny elementu , gdy aktywna Deny istnieje na ramce, powoduje wyświetlenie elementu SecurityException. Wywołaj RevertDeny lub RevertAll usuń aktywny Denyelement . Deny Jest ignorowany dla uprawnienia, które nie udzielono, ponieważ żądanie dla tego uprawnienia nie powiedzie się.

Notatki dotyczące dziedziczenia

Nie można zastąpić tej metody.

Dotyczy