<?xml version="1.0" encoding="utf-8"?>
<Type Name="ISessionIDManager" FullName="System.Web.SessionState.ISessionIDManager">
  <TypeSignature Language="C#" Value="public interface ISessionIDManager" />
  <AssemblyInfo>
    <AssemblyName>System.Web</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Web.SessionState.ISessionIDManager" /> interface identifies the methods that you must implement to create a custom manager for session-identifier values. An <see cref="T:System.Web.SessionState.ISessionIDManager" /> interface implementation creates and validates session-identifier values, and manages the storage of a session identifier in the HTTP response as well as the retrieval of a session-identifier value from the HTTP request. You enable the custom session-ID manager using the sessionIDManagerType attribute of the <format type="text/html"><a href="bda6fb8c-0076-43e3-9ce2-8cf1f8bdaa7d">sessionState</a></format> configuration element.</para>
      <para>If your <see cref="T:System.Web.SessionState.ISessionIDManager" /> interface implementation will support cookieless session identifiers, you will need to implement a solution for sending and retrieving session identifiers in the URL, such as an ISAPI filter.</para>
      <para>If you only want to supply custom session-identifier values to be used by ASP.NET session state, you can create a class that inherits the <see cref="T:System.Web.SessionState.SessionIDManager" /> class and override only the <see cref="M:System.Web.SessionState.SessionIDManager.CreateSessionID(System.Web.HttpContext)" /> and <see cref="M:System.Web.SessionState.SessionIDManager.Validate(System.String)" /> methods with your own custom implementation. This enables you to supply your own session-identifier values, while relying on the base <see cref="T:System.Web.SessionState.SessionIDManager" /> class to store values to the HTTP response and retrieve values from the HTTP request. For an example of overriding the <see cref="T:System.Web.SessionState.SessionIDManager" /> class and implementing these methods, see the example provided for the <see cref="M:System.Web.SessionState.SessionIDManager.CreateSessionID(System.Web.HttpContext)" /> method of the <see cref="T:System.Web.SessionState.SessionIDManager" /> class.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Defines the contract that a custom session-state identifier manager must implement.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="CreateSessionID">
      <MemberSignature Language="C#" Value="public string CreateSessionID (System.Web.HttpContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SessionState.ISessionIDManager.CreateSessionID(System.Web.HttpContext)" /> method is used to generate a unique session identifier that the <see cref="T:System.Web.SessionState.SessionStateModule" /> object will use to identify a new session. The value returned by <see cref="M:System.Web.SessionState.ISessionIDManager.CreateSessionID(System.Web.HttpContext)" /> must be unique and must contain valid characters that can be stored in an HTTP response and request. If it is possible that the value returned by your <see cref="M:System.Web.SessionState.ISessionIDManager.CreateSessionID(System.Web.HttpContext)" /> implementation contains characters that are not valid in an HTTP response or request, you should use the <see cref="Overload:System.Web.HttpUtility.UrlEncode" /> method to encode the session-identifier value in your <see cref="M:System.Web.SessionState.ISessionIDManager.SaveSessionID(System.Web.HttpContext,System.String,System.Boolean@,System.Boolean@)" /> method implementation and the <see cref="Overload:System.Web.HttpUtility.UrlDecode" /> method to decode the session-identifier value in your <see cref="M:System.Web.SessionState.ISessionIDManager.GetSessionID(System.Web.HttpContext)" /> method implementation.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a unique session identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A unique session identifier.</para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The current <see cref="T:System.Web.HttpContext" /> object that references server objects used to process HTTP requests (for example, the <see cref="P:System.Web.HttpContext.Request" /> and <see cref="P:System.Web.HttpContext.Response" /> properties). </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetSessionID">
      <MemberSignature Language="C#" Value="public string GetSessionID (System.Web.HttpContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SessionState.ISessionIDManager.GetSessionID(System.Web.HttpContext)" /> method is called by the <see cref="T:System.Web.SessionState.SessionStateModule" /> during the <see cref="E:System.Web.HttpApplication.AcquireRequestState" /> and <see cref="E:System.Web.HttpApplication.EndRequest" /> events. If you cannot retrieve a valid session identifier from the HTTP request, return null. If the <see cref="T:System.Web.SessionState.SessionStateModule" /> receives null from the <see cref="M:System.Web.SessionState.ISessionIDManager.GetSessionID(System.Web.HttpContext)" /> method, it will call the <see cref="M:System.Web.SessionState.ISessionIDManager.CreateSessionID(System.Web.HttpContext)" /> method to get a new session identifier for a new session.</para>
          <para>If it is possible that the value returned by your <see cref="M:System.Web.SessionState.ISessionIDManager.CreateSessionID(System.Web.HttpContext)" /> implementation contains characters that are not valid in an HTTP response or request, you should use the <see cref="Overload:System.Web.HttpUtility.UrlEncode" /> method to encode the session-identifier value in your <see cref="M:System.Web.SessionState.ISessionIDManager.SaveSessionID(System.Web.HttpContext,System.String,System.Boolean@,System.Boolean@)" /> method implementation and the <see cref="Overload:System.Web.HttpUtility.UrlDecode" /> method to decode the session-identifier value in your <see cref="M:System.Web.SessionState.ISessionIDManager.GetSessionID(System.Web.HttpContext)" /> method implementation.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the session identifier from the context of the current HTTP request.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The current session identifier sent with the HTTP request.</para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The current <see cref="T:System.Web.HttpContext" /> object that references server objects used to process HTTP requests (for example, the <see cref="P:System.Web.HttpContext.Request" /> and <see cref="P:System.Web.HttpContext.Response" /> properties).</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Initialize">
      <MemberSignature Language="C#" Value="public void Initialize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.Web.SessionState.ISessionIDManager.Initialize" /> method to initialize the <see cref="T:System.Web.SessionState.ISessionIDManager" /> object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes the <see cref="T:System.Web.SessionState.SessionIDManager" /> object.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="InitializeRequest">
      <MemberSignature Language="C#" Value="public bool InitializeRequest (System.Web.HttpContext context, bool suppressAutoDetectRedirect, out bool supportSessionIDReissue);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
        <Parameter Name="suppressAutoDetectRedirect" Type="System.Boolean" />
        <Parameter Name="supportSessionIDReissue" Type="System.Boolean&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="context">To be added.</param>
        <param name="suppressAutoDetectRedirect">To be added.</param>
        <param name="supportSessionIDReissue">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RemoveSessionID">
      <MemberSignature Language="C#" Value="public void RemoveSessionID (System.Web.HttpContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Web.SessionState.SessionStateModule" /> calls the <see cref="M:System.Web.SessionState.SessionIDManager.RemoveSessionID(System.Web.HttpContext)" /> method during the <see cref="E:System.Web.HttpApplication.ReleaseRequestState" /> event to remove the session identifier from the <see cref="P:System.Web.HttpResponse.Cookies" /> collection if a new session was created but was not used.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Deletes the session identifier from the cookie or from the URL.</para>
        </summary>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The current <see cref="T:System.Web.HttpContext" /> object that references server objects used to process HTTP requests (for example, the <see cref="P:System.Web.HttpContext.Request" /> and <see cref="P:System.Web.HttpContext.Response" /> properties).</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SaveSessionID">
      <MemberSignature Language="C#" Value="public void SaveSessionID (System.Web.HttpContext context, string sessionID, out bool isRedirected, out bool isCookieAdded);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
        <Parameter Name="sessionID" Type="System.String" />
        <Parameter Name="isRedirected" Type="System.Boolean&amp;" RefType="out" />
        <Parameter Name="isCookieAdded" Type="System.Boolean&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="context">To be added.</param>
        <param name="sessionID">To be added.</param>
        <param name="isRedirected">To be added.</param>
        <param name="isCookieAdded">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Validate">
      <MemberSignature Language="C#" Value="public bool Validate (string id);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="id" Type="System.String" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SessionState.ISessionIDManager.Validate(System.String)" /> method verifies that the supplied <paramref name="id" /> is a valid session identifier.</para>
          <para>Your <see cref="T:System.Web.SessionState.ISessionIDManager" /> implementation should call the <see cref="M:System.Web.SessionState.ISessionIDManager.Validate(System.String)" /> method from the <see cref="M:System.Web.SessionState.ISessionIDManager.GetSessionID(System.Web.HttpContext)" /> method when retrieving a session identifier from an HTTP request to ensure that the supplied session identifier is properly formatted.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Confirms that the supplied session identifier is valid.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the session identifier is valid; otherwise, false.</para>
        </returns>
        <param name="id">
          <attribution license="cc4" from="Microsoft" modified="false" />The session identifier to validate. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
  </Members>
</Type>