Czy ktoś może wyjaśnić, dlaczego cykl życia atrybutu authorize wydaje się być zarządzany w odniesieniu do klasy lub metody, do której ma zastosowanie? Jest to w przeciwieństwie do zarządzania w odniesieniu do cyklu życia żądania.Authorize Attribute Lifecycle
Jeśli zdobędę kontroler na poziomie klasy, autoryzujący się konstruktor atrybutów zostanie wywołany tylko raz w wielu żądaniach do tego samego kontrolera. Jeśli ozdobię każdą metodę kontrolera, otrzymam nowe wywołanie konstruktora atrybutów atrybutu dla każdej wywołanej metody kontrolera.
O co w tym wszystkim chodzi? Oczekuję, że autoryzacja tworzenia atrybutów stanie się każdym żądaniem.
Jak ustalacie, że jest on wywoływany tylko raz, gdy zostanie zastosowany do klasy? AFAIK, kontroler jest tworzony i niszczony przy każdym żądaniu. To rodzaj * ma * być, albo skończyłoby się zanieczyszczeniem na żądanie. Możliwe, że podczas debugowania w Visual Studio obejdzie to z jakiegoś powodu, ale jeśli otrzymasz tę samą instancję kontrolera dla każdego żądania na prawdziwym IIS, to jest problem. –
Chris, nie mówiłem o cyklu życia kontrolera. Raczej, pytam o cykl życia AuthorizeAttribute. AuthorizeAttribute nie jest tworzony dla każdego żądania i oczekiwałem, że będzie. Niestety, prowadzi to do problemów z bieżącą aplikacją, ponieważ musimy zmodyfikować role w czasie wykonywania. – Daniel