Sdílet prostřednictvím


HttpSessionState.IsCookieless Vlastnost

Definice

Získá hodnotu označující, zda ID relace je vložena v adrese URL nebo uložena v souboru cookie HTTP.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

Hodnota vlastnosti

truepokud je relace vložena v adrese URL; v opačném případě . false

Příklady

Následující příklad kódu nastaví cookieless atribut relace na hodnotu true v souboru Web.config.

<configuration>
  <system.web>
    <sessionState
      mode="InProc"
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

Poznámky

ASP.NET jedinečným způsobem identifikuje relace s každým prohlížečem. Ve výchozím nastavení je jedinečný identifikátor relace uložen v souboru cookie relace, který nevypršel. Můžete určit, že identifikátory relace nebudou uloženy v souboru cookie nastavením atributu cookieless na true v elementu konfigurace sessionState .

Poznámka

Aby se zlepšilo zabezpečení vaší aplikace, měla by aplikace uživatelům umožnit odhlášení. V tomto okamžiku by měla volat metodu Abandon . Tím se snižuje riziko, že nežádoucí zdroj pomocí jedinečného identifikátoru v adrese URL načte soukromá data uložená v relaci pro uživatele.

ASP.NET udržuje stav relace bez souborů cookie automatickým vložením jedinečného ID relace do adresy URL stránky. Například ASP.NET upravil následující adresu URL tak, aby obsahovala jedinečné ID relace lit3py55t21z5v55vlm25s55:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

ASP.NET upraví odkazy obsažené na všech požadovaných stránkách vložením hodnoty ID relace do odkazů těsně před odesláním každé stránky do prohlížeče. Stav relace se udržuje, dokud uživatel sleduje cestu k odkazům, které web poskytuje. Pokud však uživatelský agent přepíše adresu URL, instance stavu relace bude ztracena.

ID relace je vloženo do adresy URL za lomítkem, které následuje za názvem aplikace, a před libovolným zbývajícím identifikátorem souboru nebo virtuálního adresáře. To ASP.NET umožní přeložit název aplikace před zahrnutím SessionStateModule názvu aplikace do požadavku.

Ve výchozím nastavení se identifikátory relací používané v relacích bez souborů cookie recyklují. To znamená, že pokud je požadavek proveden s ID relace, jehož platnost vypršela, spustí se nová relace s použitím ID relace zadaného s požadavkem. Toto chování může vést k nežádoucímu sdílení dat relací, když je odkaz, který obsahuje ID relace bez souborů cookie, sdílen s více prohlížeči, například prostřednictvím vyhledávacího webu nebo jiného programu. Možnost sdílení dat relace více klienty můžete omezit zakázáním recyklace identifikátorů relací. Chcete-li to provést, nastavte regenerateExpiredSessionId atribut elementu konfigurace sessionState na truehodnotu . Výsledkem bude vygenerování nového ID relace, když se vytvoří žádost o relaci bez souborů cookie s ID relace s prošlou platností. Všimněte si, že pokud požadavek provedený s ID relace s prošlou platností používá metodu HTTP POST , pak se všechna odesílaná data ztratí, protože regenerateExpiredSessionIdtrueASP.NET provede přesměrování, aby se zajistilo, že prohlížeč má v adrese URL nový identifikátor relace.

Poznámka

Nastavení atributu regenerateExpiredSessionId na true sice snižuje možnost nežádoucího sdílení dat relace, ale nechrání před nežádoucím zdrojem, který získá přístup k relaci jiného uživatele tím, že získá SessionID hodnotu a zahrne ji do požadavků na server. Pokud ukládáte soukromé nebo citlivé informace ve stavu relace, doporučujeme použít ssl k šifrování veškeré komunikace mezi prohlížečem a serverem SessionID, která zahrnuje .

Platí pro

Viz také