﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.5/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="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></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 - 2018 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>
