CodeAccessPermission.Deny Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.