HttpSessionState.IsCookieless Właściwość
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.
Pobiera wartość wskazującą, czy identyfikator sesji jest osadzony w adresie URL, czy przechowywany w pliku cookie HTTP.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Wartość właściwości
true
jeśli sesja jest osadzona w adresie URL; w przeciwnym razie , false
.
Przykłady
Poniższy przykład kodu ustawia cookieless
atrybut sesji na wartość true w pliku Web.config.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Uwagi
ASP.NET identyfikuje sesje unikatowo z każdą przeglądarką. Domyślnie unikatowy identyfikator sesji jest przechowywany w pliku cookie sesji, który nie wygasa w przeglądarce. Można określić, że identyfikatory sesji nie są przechowywane w pliku cookie, ustawiając cookieless
atrybut na true
w sessionState elementu konfiguracji.
Uwaga
Aby zwiększyć bezpieczeństwo aplikacji, aplikacja powinna zezwalać użytkownikom na wylogowanie się, w którym momencie powinna wywołać metodę Abandon . Zmniejsza to potencjał niepożądanego źródła przy użyciu unikatowego identyfikatora w adresie URL w celu pobrania prywatnych danych przechowywanych w sesji dla użytkownika.
ASP.NET zachowuje stan sesji bez plików cookie, automatycznie wstawiając unikatowy identyfikator sesji do adresu URL strony. Na przykład następujący adres URL został zmodyfikowany przez ASP.NET w celu uwzględnienia unikatowego identyfikatora sesji lit3py55t21z5v55vlm25s55:
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET modyfikuje linki zawarte we wszystkich żądanych stronach, osadzając wartość identyfikatora sesji w linkach tuż przed wysłaniem każdej strony do przeglądarki. Stan sesji jest utrzymywany tak długo, jak użytkownik podąża za ścieżką łączy, które udostępnia witryna. Jeśli jednak agent użytkownika ponownie napisze adres URL, wystąpienie stanu sesji zostanie utracone.
Identyfikator sesji jest osadzony w adresie URL po ukośniku, który następuje po nazwie aplikacji i przed pozostałym plikiem lub identyfikatorem katalogu wirtualnego. Dzięki temu ASP.NET rozpoznać nazwę aplikacji przed udziałem SessionStateModule elementu w żądaniu.
Domyślnie identyfikatory sesji używane w sesjach bez plików cookie są poddawane recyklingu. Oznacza to, że jeśli żądanie zostanie wykonane z identyfikatorem sesji, który wygasł, nowa sesja zostanie uruchomiona przy użyciu identyfikatora sesji dostarczonego z żądaniem. Takie zachowanie może spowodować niepożądane udostępnianie danych sesji, gdy link zawierający identyfikator sesji bez plików cookie jest udostępniany wielu przeglądarkom, na przykład za pośrednictwem wyszukiwarki lub innego programu. Można zmniejszyć możliwość udostępniania danych sesji przez wielu klientów, wyłączając odtwarzanie identyfikatorów sesji. W tym celu ustaw regenerateExpiredSessionId
atrybut elementu konfiguracji sessionState na true
wartość . Spowoduje to wygenerowanie nowego identyfikatora sesji po wysłaniu żądania sesji bez plików cookie z wygasłym identyfikatorem sesji. Należy pamiętać, że jeśli żądanie wysłane przy użyciu wygasłego identyfikatora sesji używa metody HTTP POST
, wszystkie opublikowane dane zostaną utracone, gdy regenerateExpiredSessionId
ma true
wartość , ponieważ ASP.NET wykonuje przekierowanie, aby upewnić się, że przeglądarka ma nowy identyfikator sesji w adresie URL.
Uwaga
Podczas ustawiania atrybutu regenerateExpiredSessionId
w celu true
zmniejszenia możliwości niechcianego udostępniania danych sesji, nie chroni przed niechcianym źródłem uzyskującym dostęp do sesji innego użytkownika przez uzyskanie SessionID wartości i uwzględnienie jej w żądaniach do serwera. Jeśli przechowujesz prywatne lub poufne informacje w stanie sesji, zaleca się użycie protokołu SSL do szyfrowania komunikacji między przeglądarką a serwerem zawierającym SessionIDprogram .
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Już wkrótce: w ciągu 2024 r. będziemy stopniowo usuwać problemy z usługą GitHub jako mechanizm opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla