Udostępnij za pośrednictwem


HttpSessionState.IsCookieless Właściwość

Definicja

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 elemecie konfiguracji sessionState .

Uwaga

Aby zwiększyć bezpieczeństwo aplikacji, aplikacja powinna zezwolić 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 lit3py55t21z5v5vlm25s55:

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ą linków, 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óra wygasła, 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, być może 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 truewartość . Spowoduje to wygenerowanie nowego identyfikatora sesji po wysłaniu żądania sesji bez plików cookie o wygasłym identyfikatorze sesji. Należy pamiętać, że jeśli żądanie wykonane przy użyciu wygasłego identyfikatora sesji używa metody HTTP POST , wszystkie opublikowane dane zostaną utracone, gdy regenerateExpiredSessionId jest to true, ponieważ ASP.NET wykonuje przekierowanie, aby upewnić się, że przeglądarka ma nowy identyfikator sesji w adresie URL.

Uwaga

Ustawienie 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 dołączenie jej w żądaniach do serwera. Jeśli przechowujesz prywatne lub poufne informacje w stanie sesji, zaleca się użycie protokołu SSL do szyfrowania dowolnej komunikacji między przeglądarką a serwerem zawierającym usługę SessionID.

Dotyczy

Zobacz też