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ámkaPozná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:

sqlConnectionString="Data Source=.\SQLServer2005;Initial Catalog=SessionState;Integrated Security=SSPI;"
PoznámkaPozná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ámkaPozná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:

  • Hostitelský proces, který je ASPNET pro Internetovou informační službu (službu IIS) verze 5 a 5.1 nebo síťová služba pro systém Microsoft Windows Server 2003.

  • Zosobněná identita aplikace, která je použita, pokud je použita následující konfigurace:

    <identity impersonate="true" userName="doména\uživatelské_jméno" password="zabezpečené heslo " />

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ámkaPozná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

  1. 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.

  2. 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

  1. 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.

  2. V souboru Web.config dané aplikace nastavte mode na "SQLServer" a sqlConnectionString na hodnotu, jako například "data source=localhost;Integrated Security=SSPI;".

    PoznámkaPozná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

SessionStateSection

Konfigurační člen

System.Web.SessionState

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í)

System.Configuration

System.Web.Configuration

SessionStateSection

System.Web.SessionState

Koncepty

Zosobnění technologie ASP.NET

Režimy stavu relace

Zabezpečení stavu relace

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

Obecné nastavení konfigurace (technologie ASP.NET)

Nastavení konfigurace ASP.NET

Správa webu ASP.NET

Rozhraní API konfigurace technologie ASP.NET