Element sessionState (schéma nastavení ASP.NET)
Konfiguruje nastavení stavu relace pro aktuální aplikaci.
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieName="session identifier cookie name"
cookieless=
"[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
regenerateExpiredSessionId="[True|False]"
sessionIDManagerType="session manager type"
sqlConnectionString="sql connection string"
sqlCommandTimeout="number of seconds"
allowCustomSqlDatabase="[True|False]"
useHostingIdentity="[True|False]"
stateConnectionString="tcpip=server:port"
stateNetworkTimeout="number of seconds"
customProvider="custom provider name"
compressionEnabled="[True|False]"
sqlConnectionRetryInterval="number of seconds">
<providers>...</providers>
</sessionState>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a rodičovské prvky.
v případě vícehodnotových atributů
Atribut |
Popis |
---|---|
allowCustomSqlDatabase |
Volitelný Boolean atributu. Určuje, zda SQL databáze stavu relace může být vlastní databáze a nikoli výchozí databáze technologie ASP.NET. V případě false nelze zadat hodnotu pro počáteční katalog ani hodnotu atributu sqlConnectionString. Výchozí databáze SQL stavu relace je databáze ASPState. Další informace naleznete vRežimy stavu relace. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí je false. |
compressionEnabled |
Nepovinný atribut Boolean. Určí, zda je použita komprese u dat stavu relace. Výchozí je false. |
cookieless |
Nepovinný atribut HttpCookieMode. Určuje, jak jsou soubory cookie používány pro webovou aplikaci. Atribut cookieless může nabývat jedné z následujících možných hodnot. Výchozí hodnota je UseCookies.
Poznámka
Při konfiguraci webové stránky ASP.NET s podporou technologie AJAX, používejte pouze výchozí hodnotu UseCookies pro atribut cookieless.Nastavení, která používají cookie kódované v adrese URL, nejsou podporována knihovnami klientských skriptů AJAX technologie ASP.NET.
HodnotaPopis
AutoDetect ASP.NET určí, zda dotazující se prohlížeč nebo zařízení podporuje soubory cookie.Pokud dotazující se prohlížeč nebo zařízení podporuje soubory cookie, použije AutoDetect cookie k uchování uživatelských dat. Jinak je identifikátor použit v dotazovacím řetězci.Pokud prohlížeč nebo zařízení podporuje soubory cookie, ale soubory cookie jsou aktuálně neaktivní, jsou soubory cookie nadále používány dotazovací funkcí.
UseCookies Soubory cookie uchovávají uživatelská data bez ohledu na to, zda prohlížeč nebo zařízení podporuje soubory cookie.
UseDeviceProfile ASP.NET určuje, zda používat soubory cookie, na základě nastavení HttpBrowserCapabilities.Pokud nastavení HttpBrowserCapabilities udává, že prohlížeč nebo zařízení podporuje soubory cookie, jsou soubory cookie používány. Jinak je identifikátor použit v dotazovacím řetězci.
UseUri Volání funkce používá řetězec dotazu k uložení identifikátoru, bez ohledu na to, zda prohlížeč nebo zařízení podporuje soubory cookie.
|
cookieName |
Nepovinný atribut String. Určuje název souboru cookie, který ukládá identifikátor relace. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí je "ASP.NET_SessionId". |
customProvider |
Nepovinný atribut String. Určuje název vlastního poskytovatele stavu relace pro ukládání a načítání dat o stavu relace. Poskytovatel je určen v elementu providers. Poskytovatel se používá pouze pokud je režim stavu relace nastaven na hodnotu Custom. Další informace naleznete v tématu Režimy stavu relace. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí hodnota je prázdný řetězec (""). |
mode |
Nepovinný atribut SessionStateMode. Určuje umístění k uložení hodnot stavu relace. Další informace naleznete v tématu Režimy stavu relace. mode Atribut může být jeden z následujících možných hodnot. Výchozí hodnota je InProc hodnotu.
HodnotaPopis
Custom Stav relace používá vlastní datové úložiště pro ukládání informací o stavu relace.
InProc Stav relace je v procesu s pracovním procesem ASP.NET.
Off Stav relace je zakázán.
SQLServer Stav relace používá databázi serveru SQL Serveru mimo proces k uložení informací o stavu.
StateServer Stav relace používá stavovou službu technologie ASP.NET mimo proces k uložení informací o stavu.
|
partitionResolverType |
Nepovinný atribut String. Určuje umístění k uložení stavu relace. Pokud je zadána hodnota v atributu partitionResolverType, jsou atributy sqlConnectionString a stateConnectionString ignorovány. Připojovací řetězec vrácený vlastností PartitionResolverType se používá při každé žádosti o připojení k místu příslušného serveru pro zbytek žádosti. Pokud není připojovací řetězec platný, vyvolá technologie ASP.NET stejnou výjimku, která se vyvolá, pokud nakonfigurovaný řetězec připojení k serveru není platný. Tato vlastnost se používá k oddělení dat stavu relace mezi více koncovými uzly v režimu SQL nebo stavového serveru. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozím nastavením je prázdný řetězec. |
regenerateExpiredSessionId |
Nepovinný atribut Boolean. Určuje, zda bude ID relace opakováno, pokud klient specifikuje ID vypršené relace. Ve výchozím nastavení je ID relace opakováno pouze pro režim cookieless při povolení regenerateExpiredSessionId. Další informace naleznete v tématu IsCookieless. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí hodnota je true. |
sessionIDManagerType |
Nepovinný atribut String. Určuje plně kvalifikovaný typ správce ID relace. Výchozí hodnota je prázdný řetězec. |
sqlCommandTimeout |
Nepovinný atribut TimeSpan. Určuje časový limit doby trvání v sekundách pro SQL příkazy, které používají režim stavu relace SQL Serveru. Doba trvání časového limitu je počet sekund, při kterých příkaz SQL může vykazovat nečinnost, než je zrušen. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí hodnota je 0:00:30 (30 sekund). |
sqlConnectionRetryInterval |
Nepovinný atribut TimeSpan. Určuje časový interval v sekundách mezi jednotlivými pokusy o připojení k databázi. Výchozí hodnota je 0 sekund. |
sqlConnectionString |
Nepovinný atribut String. Určuje připojovací řetězec k počítači s SQL Serverem. Tento atribut je vyžadován v případě, že je atribut mode nastaven na hodnotu SQLServer. Další informace naleznete v tématu Režimy stavu relace. Můžete buď nastavit tento atribut na pojmenovaný sqlConnectionString z uzlu connectionStrings, nebo použít následující syntaxi:
Poznámka
Chcete-li zlepšit zabezpečení v aplikaci při použití režimu SQLServer, použijte Protected Configuration pro usnadnění ochránění hodnoty sqlConnectionString zašifrováním oddílu sessionState vaší aplikace.
Výchozí je "data source=127.0.0.1;Integrated Security=SSPI". |
stateConnectionString |
Nepovinný atribut String. Určuje název serveru nebo adresu a port, kde je vzdáleně uložen stav relace. Hodnota portu musí být 42424. Tento atribut je vyžadován v případě, pokud je mode rovno hodnotě StateServer. Ujistěte se, že stavová služba technologie ASP.NET běží na vzdáleném serveru, v němž jsou uloženy informace o stavu relace. Tato služba je nainstalována s ASP.NET a ve výchozím nastavení je umístěn ve %windir%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Další informace naleznete v tématu Režimy stavu relace.
Poznámka
Chcete-li zlepšit zabezpečení v aplikaci při použití režimu StateServer, použijte Protected Configuration pro usnadnění ochránění hodnoty stateConnectionString zašifrováním oddílu sessionState vaší aplikace.
Výchozí je "tcpip=127.0.0.1:42424". |
stateNetworkTimeout |
Nepovinný atribut TimeSpan. Určuje počet sekund, při kterém může být síťové spojení TCP/IP mezi webovým serverem a stavovým serverem v nečinnosti, než je žádost zrušena. Tento atribut je použit v případě, že je atribut mode nastaven na hodnotu StateServer. Výchozí hodnota je 10 sekund. |
timeout |
Nepovinný atribut TimeSpan. Určuje počet minut, po který může být relace nečinná, než je opuštěna. Atribut timeout nemůže být nastaven na hodnotu, která je větší než 525600 minut (1 rok) v režimech v procesu a stavového serveru. Nastavení konfigurace timeout relace platí pouze pro stránky technologie ASP.NET. Změna hodnoty timeout relace nemá vliv na vypršení časového limitu relace pro stránky ASP. Podobně, změna hodnoty vypršení relace stránek ASP nemá vliv na vypršení časového limitu relace pro stránky ASP.NET. Výchozí hodnota je 20 minut. |
useHostingIdentity |
Nepovinný atribut Boolean. Určuje, zda se stav relace vrátí k hostitelské identitě, nebo zda použije zosobnění klienta. V případě true se ASP.NET připojí k úložišti stavu relace pomocí jedné z následujících pověření procesu:
V případě false se technologie ASP.NET připojí k úložišti stavu relace s použitím pověření, které je aktuálně přidruženo k vláknu operačního systému aktuální žádosti. Pro zosobnění klienta se ASP.NET připojí k úložišti stavu relace pomocí bezpečnostních pověření, která byla sjednána pomocí prohlížeče. V případě false se ASP.NET nevrátí k identitě procesu či k identitě zosobněné aplikace při připojování k úložišti stavu relace. Další informace naleznete v tématu Zosobnění technologie ASP.NET. Tento atribut je v rozhraní .NET Framework verze 2.0 nový. Výchozí hodnota je true.
Poznámka
Pokud byl atribut mode nastaven na hodnotu SQLServer a zosobnění klienta bylo v platnosti, použije technologie ASP.NET připojená k počítači s SQL Serverem pověření klienta ze zosobnění klienta ASP.NET.
|
Zděděné atributy |
Volitelné atributy. Atributy, které jsou děděny všemi prvky oddílu. |
Podřízené prvky
Prvek |
Popis |
---|---|
providers |
Obsahuje kolekci poskytovatelů ukládání vlastních stavů relace. |
Nadřazené prvky
Prvek |
Popis |
---|---|
configuration |
Požadovaný kořenový element nacházející se v každém konfiguračním souboru, který je používán modulem CLR (Common Language Runtime) a aplikacemi rozhraní .NET Framework. |
system.web |
Určuje kořenový element konfiguračního souboru s nastavením konfigurace technologie ASP.NET a obsahuje konfigurační prvky, které konfigurují webové aplikace ASP.NET a řídí chování aplikací. |
Poznámky
Element <sessionState> konfiguruje nastavení stavu relace pro aktuální aplikaci.
Jakmile nový klient začne komunikovat s webovou aplikací, je vydáno ID relace a je přidruženo ke všem následným požadavkům od stejného klienta, dokud je relace platná. Toto ID se používá k zachování stavu na straně serveru, který je přidružen k relaci klienta mezi požadavky. Element <sessionState> řídí, jak aplikace ASP.NET zavádí a udržuje toto přidružení pro každého klienta.
Tento mechanismus je velmi flexibilní a umožňuje hostovat informace o stavu relace mimo proces a sledovat stav bez použití souborů cookie, mimo jiné.
Při odeslání ID relace v identifikátoru URI můžete překročit maximální velikost identifikátoru URI. Pokud je kombinace lístku anonymní identifikace, lístku ověřovacího formuláře, ID relace a dat uživatele větší než je maximální přípustná délka identifikátoru URI, žádost se nezdaří s chybou 400 - Špatný požadavek.
Použití režimu StateServer
Ujistěte se, že stavová služba technologie ASP.NET běží na vzdáleném serveru, v němž jsou uloženy informace o stavu relace.
Stavová služba ASP.NET je nainstalována s ASP.NET a ve výchozím nastavení je umístěna ve %windir%\Microsoft.NET\Framework\verze\aspnet_state.exe.
V souboru Web.config dané aplikace nastavte mode na "StateServer" a stateConnectionString na hodnotu, jako například "tcpip=dataserver:42424".
Použití režimu SQLServer
Na počítači se spuštěným SQL Serverem, který bude ukládat stav relace, spusťte InstallSqlState.sql.
Ve výchozím nastavení je InstallSqlState.sql ve %windir%\Microsoft.NET\Framework\version.
To vytvoří databázi s názvem ASPState s novými uloženými procedurami a tabulkami s názvem ASPStateTempApplications a ASPStateTempSessions v databázi TempDB.
V souboru Web.config dané aplikace nastavte mode na "SQLServer" a sqlConnectionString na hodnotu, jako například "data source=localhost;Integrated Security=SSPI;".
Poznámka Můžete použít Aspnet_regsql.exe k dokončení těchto kroků.
Informace o přístupu a změnách hodnot konfigurace elementu <sessionState> z kódu aplikace naleznete v SessionStateSection a System.Web.SessionState.
Výchozí konfigurace
Následující výchozí element <sessionState> není explicitně nakonfigurován v souboru Machine.config nebo v kořenovém souboru web.config. To je však výchozí konfigurace, kterou vrací aplikace.
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
sqlCommandTimeout="30"
customProvider=""
cookieless="UseCookies"
cookieName="ASP.NET_SessionId"
timeout="20"
allowCustomSqlDatabase="false"
regenerateExpiredSessionId="true"
partitionResolverType=""
useHostingIdentity="true">
<providers>
<clear />
</providers>
</sessionState>
Příklad
Následující příklad ukazuje způsob nastavení konfigurace stavu relace.
<sessionState
mode="SQLServer"
cookieless="true"
sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
sqlCommandTimeout="10" />
Informace prvku
Obslužná rutina konfiguračního oddílu |
|
Konfigurační člen |
|
Konfigurovatelná umístění |
Machine.config Web.config kořenové úrovně Web.config aplikační úrovně |
Požadavky |
Microsoft Internet Information Services verze 5.0, 5.1 nebo 6.0 .NET Framework verze 1.0, 1.1 nebo 2.0 Microsoft Visual Studio 2003 nebo Visual Studio 2005 |
Viz také
Úkoly
Postup: Konfigurace specifických adresářů pomocí nastavení místa
Postupy: Uzamknutí nastavení konfigurace technologie ASP.NET
Odkaz
Element system.web (schéma nastavení ASP.NET)
Podelement providers elementu sessionState (schéma nastavení ASP.NET)
Element configuration (schéma obecného nastavení)
Koncepty
Hierarchie a dědičnost konfiguračních souborů technologie ASP.NET
Zabezpečení konfigurace technologie ASP.NET
Scénáře konfigurace technologie ASP.NET
Další zdroje
Šifrování informací o konfiguraci použitím chráněné konfigurace