HttpSessionState.IsCookieless Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
true
pokud 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 true
hodnotu . 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 regenerateExpiredSessionId
true
ASP.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 .