﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.3.0/dotnetdoc/api/Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class IgniteSessionStateStoreProvider
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class IgniteSessionStateStoreProvider
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider">
  
  
  <h1 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider" class="text-break">Class IgniteSessionStateStoreProvider
  </h1>
  <div class="markdown level0 summary"><p>ASP.NET Session-State Store Provider that uses Ignite distributed cache as an underlying storage.
<p>
You can either start Ignite yourself, and provide <code>gridName</code> attribute, 
or provide <code>igniteConfigurationSectionName</code> attribute to start Ignite automatically from specified
configuration section (see <a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a>) 
using <code>igniteConfigurationSectionName</code>.
<p>
<code>cacheName</code> attribute specifies Ignite cache name to use for data storage. This attribute can be omitted 
if cache name is null.
<p>
Optional <code>applicationId</code> attribute allows sharing a single Ignite cache between multiple web applications.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">System.Configuration.Provider.ProviderBase</span></div>
    <div class="level2"><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase</span></div>
    <div class="level3"><span class="xref">IgniteSessionStateStoreProvider</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Configuration.Provider.ProviderBase.Name</span>
    </div>
    <div>
      <span class="xref">System.Configuration.Provider.ProviderBase.Description</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.AspNet.html">Apache.Ignite.AspNet</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.AspNet.dll</h6>
  <h5 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class IgniteSessionStateStoreProvider : SessionStateStoreProviderBase</code></pre>
  </div>
  <h3 id="fields">Fields
  </h3>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_DefaultCacheName" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.DefaultCacheName">DefaultCacheName</h4>
  <div class="markdown level1 summary"><p>The default cache name to be used when <code>cacheName</code> attribute is not specified.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string DefaultCacheName = &quot;ASPNET_SESSION_STATE&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_CreateNewStoreData_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.CreateNewStoreData*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_CreateNewStoreData_System_Web_HttpContext_System_Int32_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.CreateNewStoreData(System.Web.HttpContext,System.Int32)">CreateNewStoreData(HttpContext, Int32)</h4>
  <div class="markdown level1 summary"><p>Creates a new <span class="xref">System.Web.SessionState.SessionStateStoreData</span> object to be used 
for the current request.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override SessionStateStoreData CreateNewStoreData(HttpContext context, int timeout)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">timeout</span></td>
        <td><p>The session-state <span class="xref">System.Web.SessionState.HttpSessionState.Timeout</span> 
value for the new <span class="xref">System.Web.SessionState.SessionStateStoreData</span>, in minutes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateStoreData</span></td>
        <td><p>A new <span class="xref">System.Web.SessionState.SessionStateStoreData</span> for the current request.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.CreateNewStoreData(System.Web.HttpContext, System.Int32)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_CreateUninitializedItem_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.CreateUninitializedItem*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_CreateUninitializedItem_System_Web_HttpContext_System_String_System_Int32_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.CreateUninitializedItem(System.Web.HttpContext,System.String,System.Int32)">CreateUninitializedItem(HttpContext, String, Int32)</h4>
  <div class="markdown level1 summary"><p>Adds a new session-state item to the data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void CreateUninitializedItem(HttpContext context, string id, int timeout)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.HttpSessionState.SessionID</span> 
for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">timeout</span></td>
        <td><p>The session <span class="xref">System.Web.SessionState.HttpSessionState.Timeout</span> 
for the current request, in minutes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.CreateUninitializedItem(System.Web.HttpContext, System.String, System.Int32)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_Dispose_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.Dispose*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_Dispose" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.Dispose">Dispose()</h4>
  <div class="markdown level1 summary"><p>Releases all resources used by the <span class="xref">System.Web.SessionState.SessionStateStoreProviderBase</span> 
implementation.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void Dispose()</code></pre>
  </div>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.Dispose()</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_EndRequest_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.EndRequest*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_EndRequest_System_Web_HttpContext_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.EndRequest(System.Web.HttpContext)">EndRequest(HttpContext)</h4>
  <div class="markdown level1 summary"><p>Called by the <span class="xref">System.Web.SessionState.SessionStateModule</span> object at the end of a request.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void EndRequest(HttpContext context)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.EndRequest(System.Web.HttpContext)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_GetItem_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.GetItem*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_GetItem_System_Web_HttpContext_System_String_System_Boolean__System_TimeSpan__System_Object__System_Web_SessionState_SessionStateActions__" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.GetItem(System.Web.HttpContext,System.String,System.Boolean@,System.TimeSpan@,System.Object@,System.Web.SessionState.SessionStateActions@)">GetItem(HttpContext, String, out Boolean, out TimeSpan, out Object, out SessionStateActions)</h4>
  <div class="markdown level1 summary"><p>Returns read-only session-state data from the session data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.HttpSessionState.SessionID</span> for the 
current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">locked</span></td>
        <td><p>When this method returns, contains a Boolean value that is set to true if the 
requested session item is locked at the session data store; otherwise, false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.TimeSpan</span></td>
        <td><span class="parametername">lockAge</span></td>
        <td><p>When this method returns, contains a <span class="xref">System.TimeSpan</span> object that 
is set to the amount of time that an item in the session data store has been locked.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">lockId</span></td>
        <td><p>When this method returns, contains an object that is set to the lock identifier 
for the current request. For details on the lock identifier, see &quot;Locking Session-Store Data&quot; 
in the <span class="xref">System.Web.SessionState.SessionStateStoreProviderBase</span> class summary.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateActions</span></td>
        <td><span class="parametername">actions</span></td>
        <td><p>When this method returns, contains one of the 
<span class="xref">System.Web.SessionState.SessionStateActions</span> values, indicating whether the current 
session is an uninitialized, cookieless session.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateStoreData</span></td>
        <td><p>A <span class="xref">System.Web.SessionState.SessionStateStoreData</span> populated with session values and 
information from the session data store.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.GetItem(System.Web.HttpContext, System.String, System.Boolean, System.TimeSpan, System.Object, System.Web.SessionState.SessionStateActions)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_GetItemExclusive_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.GetItemExclusive*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_GetItemExclusive_System_Web_HttpContext_System_String_System_Boolean__System_TimeSpan__System_Object__System_Web_SessionState_SessionStateActions__" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean@,System.TimeSpan@,System.Object@,System.Web.SessionState.SessionStateActions@)">GetItemExclusive(HttpContext, String, out Boolean, out TimeSpan, out Object, out SessionStateActions)</h4>
  <div class="markdown level1 summary"><p>Returns read-only session-state data from the session data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override SessionStateStoreData GetItemExclusive(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.HttpSessionState.SessionID</span> for the current 
request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">locked</span></td>
        <td><p>When this method returns, contains a Boolean value that is set to true if a lock 
is successfully obtained; otherwise, false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.TimeSpan</span></td>
        <td><span class="parametername">lockAge</span></td>
        <td><p>When this method returns, contains a <span class="xref">System.TimeSpan</span> object that 
is set to the amount of time that an item in the session data store has been locked.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">lockId</span></td>
        <td><p>When this method returns, contains an object that is set to the lock identifier 
for the current request. For details on the lock identifier, see &quot;Locking Session-Store Data&quot; in 
the <span class="xref">System.Web.SessionState.SessionStateStoreProviderBase</span> class summary.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateActions</span></td>
        <td><span class="parametername">actions</span></td>
        <td><p>When this method returns, contains one of the 
<span class="xref">System.Web.SessionState.SessionStateActions</span> values, indicating whether the current 
session is an uninitialized, cookieless session.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateStoreData</span></td>
        <td><p>A <span class="xref">System.Web.SessionState.SessionStateStoreData</span> populated with session values 
and information from the session data store.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.GetItemExclusive(System.Web.HttpContext, System.String, System.Boolean, System.TimeSpan, System.Object, System.Web.SessionState.SessionStateActions)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_Initialize_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.Initialize*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_Initialize_System_String_System_Collections_Specialized_NameValueCollection_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)">Initialize(String, NameValueCollection)</h4>
  <div class="markdown level1 summary"><p>Initializes the provider.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void Initialize(string name, NameValueCollection config)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">name</span></td>
        <td><p>The friendly name of the provider.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Specialized.NameValueCollection</span></td>
        <td><span class="parametername">config</span></td>
        <td><p>A collection of the name/value pairs representing the provider-specific attributes 
specified in the configuration for this provider.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Configuration.Provider.ProviderBase.Initialize(System.String, System.Collections.Specialized.NameValueCollection)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_InitializeRequest_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.InitializeRequest*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_InitializeRequest_System_Web_HttpContext_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.InitializeRequest(System.Web.HttpContext)">InitializeRequest(HttpContext)</h4>
  <div class="markdown level1 summary"><p>Called by the <span class="xref">System.Web.SessionState.SessionStateModule</span> object 
for per-request initialization.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void InitializeRequest(HttpContext context)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.InitializeRequest(System.Web.HttpContext)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_ReleaseItemExclusive_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.ReleaseItemExclusive*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_ReleaseItemExclusive_System_Web_HttpContext_System_String_System_Object_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.ReleaseItemExclusive(System.Web.HttpContext,System.String,System.Object)">ReleaseItemExclusive(HttpContext, String, Object)</h4>
  <div class="markdown level1 summary"><p>Releases a lock on an item in the session data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void ReleaseItemExclusive(HttpContext context, string id, object lockId)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The session identifier for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">lockId</span></td>
        <td><p>The lock identifier for the current request.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.ReleaseItemExclusive(System.Web.HttpContext, System.String, System.Object)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_RemoveItem_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.RemoveItem*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_RemoveItem_System_Web_HttpContext_System_String_System_Object_System_Web_SessionState_SessionStateStoreData_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.RemoveItem(System.Web.HttpContext,System.String,System.Object,System.Web.SessionState.SessionStateStoreData)">RemoveItem(HttpContext, String, Object, SessionStateStoreData)</h4>
  <div class="markdown level1 summary"><p>Deletes item data from the session data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void RemoveItem(HttpContext context, string id, object lockId, SessionStateStoreData item)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The session identifier for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">lockId</span></td>
        <td><p>The lock identifier for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateStoreData</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.SessionStateStoreData</span> that represents 
the item to delete from the data store.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.RemoveItem(System.Web.HttpContext, System.String, System.Object, System.Web.SessionState.SessionStateStoreData)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_ResetItemTimeout_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.ResetItemTimeout*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_ResetItemTimeout_System_Web_HttpContext_System_String_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.ResetItemTimeout(System.Web.HttpContext,System.String)">ResetItemTimeout(HttpContext, String)</h4>
  <div class="markdown level1 summary"><p>Updates the expiration date and time of an item in the session data store.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void ResetItemTimeout(HttpContext context, string id)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The session identifier for the current request.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.ResetItemTimeout(System.Web.HttpContext, System.String)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_SetAndReleaseItemExclusive_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.SetAndReleaseItemExclusive*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_SetAndReleaseItemExclusive_System_Web_HttpContext_System_String_System_Web_SessionState_SessionStateStoreData_System_Object_System_Boolean_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.SetAndReleaseItemExclusive(System.Web.HttpContext,System.String,System.Web.SessionState.SessionStateStoreData,System.Object,System.Boolean)">SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean)</h4>
  <div class="markdown level1 summary"><p>Updates the session-item information in the session-state data store with values from the current request, 
and clears the lock on the data.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override void SetAndReleaseItemExclusive(HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.HttpContext</span></td>
        <td><span class="parametername">context</span></td>
        <td><p>The <span class="xref">System.Web.HttpContext</span> for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">id</span></td>
        <td><p>The session identifier for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateStoreData</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.SessionStateStoreData</span> object that 
contains the current session values to be stored.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">lockId</span></td>
        <td><p>The lock identifier for the current request.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">newItem</span></td>
        <td><p>true to identify the session item as a new item; false to identify the session 
item as an existing item.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.SetAndReleaseItemExclusive(System.Web.HttpContext, System.String, System.Web.SessionState.SessionStateStoreData, System.Object, System.Boolean)</span></div>
  <a id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_SetItemExpireCallback_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.SetItemExpireCallback*"></a>
  <h4 id="Apache_Ignite_AspNet_IgniteSessionStateStoreProvider_SetItemExpireCallback_System_Web_SessionState_SessionStateItemExpireCallback_" data-uid="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider.SetItemExpireCallback(System.Web.SessionState.SessionStateItemExpireCallback)">SetItemExpireCallback(SessionStateItemExpireCallback)</h4>
  <div class="markdown level1 summary"><p>Sets a reference to the <span class="xref">System.Web.SessionState.SessionStateItemExpireCallback</span> 
delegate for the Session_OnEnd event defined in the Global.asax file.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override bool SetItemExpireCallback(SessionStateItemExpireCallback expireCallback)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Web.SessionState.SessionStateItemExpireCallback</span></td>
        <td><span class="parametername">expireCallback</span></td>
        <td><p>The <span class="xref">System.Web.SessionState.SessionStateItemExpireCallback</span><br>delegate for the Session_OnEnd event defined in the Global.asax file.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>true if the session-state store provider supports calling the Session_OnEnd event; otherwise, false.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Web.SessionState.SessionStateStoreProviderBase.SetItemExpireCallback(System.Web.SessionState.SessionStateItemExpireCallback)</span></div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2017 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
