Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DefaultKeyResolution.ShouldGenerateNewKey nie odzwierciedla już, czy klucz domyślny jest bliski czasu wygaśnięcia.
Wersja wprowadzona
ASP.NET Core 9.0 (wersja zapoznawcza 3)
Poprzednie zachowanie
To była nieudokumentowana, ale spójna funkcja interfejsu API, która była stosowana, jeśli klucz domyślny mieścił się w ciągu dwóch dni (uproszczenie) od czasu jego wygaśnięcia. Czas realizacji zależał od interwału ICacheableKeyRingProvider sondowania, które nie powinny być od niego zależne IDefaultKeyResolver.ResolveDefaultKeyPolicy, ponieważ na przykład alternatywne implementacje prawdopodobnie nie byłyby świadome tych szczegółów.
Nowe zachowanie
Począwszy od platformy .NET 9, jeśli ShouldGenerateNewKey jest true, oznacza to, że albo nie ma klucza domyślnego, albo z innej przyczyny polityki (w wyspecjalizowanej implementacji IDefaultKeyResolver), należy wygenerować nowy klucz.
ICacheableKeyRingProvider samodzielnie decyduje, czy termin wygaśnięcia jest na tyle bliski, aby uzasadnić wygenerowanie nowego klucza.
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Ta zmiana została wprowadzona z dwóch powodów:
- Aby zmienić logikę dotyczącą generowania kluczy w okresie zbliżającym się do wygaśnięcia.
- Aby ułatwić implementację niestandardowego
IDefaultKeyResolverelementu .
Zalecana akcja
Jeśli masz implementację IDefaultKeyResolver , która próbuje replikować logikę wygaśnięcia, możesz usunąć tę logikę (jednak pozostawienie jej również jest w porządku).
Jeśli używasz IDefaultKeyResolver bezpośrednio, aby określić, czy oczekiwać wygaśnięcia, możesz sprawdzić właściwość klucza domyślnego ExpirationDate bezpośrednio.
Interfejsy API, których dotyczy problem
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey