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.
Przestroga
Ten interfejs API jest już 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ływaniom 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ż aktywna Deny() .
Uwagi
Ważne
Metoda Deny powinna być używana tylko do ochrony zasobów przed przypadkowym dostępem za pomocą w pełni zaufanego kodu. 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 Deny uprawnienie, a następnie wywołuje metodę B
, metoda B
może jawnie zastąpić Deny metodę, wydając element 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 Deny obiekt umieszczony na stosie według metody A
(metoda wywołująca) nigdy nie zostanie odnaleziony.
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 te osoby wywołujące otrzymały uprawnienia dostępu do niego. Stos wywołań jest zwykle reprezentowany jako rosnący, dzięki czemu metody wyższe w metodach wywołań stosu wywołań niższe w stosie wywołań.
Deny program może ograniczyć odpowiedzialność programisty lub zapobiec przypadkowym problemom z zabezpieczeniami, ponieważ pomaga zapobiec użyciu metody, która wywołuje Deny dostęp do zasobu chronionego przez odmowę uprawnień. Jeśli metoda wywołuje Deny uprawnienie i jeśli Demand dla tego uprawnienia jest wywoływana przez obiekt wywołujący niższy w stosie wywołań, sprawdzanie zabezpieczeń zakończy się niepowodzeniem, gdy osiągnie Denywartość .
Wywołanie metody Deny jest 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 , gdy aktywna Deny istnieje na ramce, powoduje wyświetlenie elementu SecurityException. Wywołaj metodę RevertDeny lub RevertAll , aby usunąć aktywny Denyelement . Deny Jest ignorowany dla uprawnienia, którego nie udzielono, ponieważ żądanie tego uprawnienia nie powiedzie się.
Uwagi dotyczące dziedziczenia
Nie można zastąpić tej metody.