SessionIDManager.CreateSessionID(HttpContext) Metod

Definition

Skapar en unik sessionsidentifierare för sessionen.

public:
 virtual System::String ^ CreateSessionID(System::Web::HttpContext ^ context);
public virtual string CreateSessionID(System.Web.HttpContext context);
abstract member CreateSessionID : System.Web.HttpContext -> string
override this.CreateSessionID : System.Web.HttpContext -> string
Public Overridable Function CreateSessionID (context As HttpContext) As String

Parametrar

context
HttpContext

Det aktuella HttpContext objektet som refererar till serverobjekt som används för att bearbeta HTTP-begäranden (till exempel Request egenskaperna och Response ).

Returer

En unik sessionsidentifierare.

Implementeringar

Exempel

I följande kodexempel visas en klass som ärver SessionIDManager klassen och åsidosätter CreateSessionID metoderna och Validate med metoder som anger och validerar en Guid som SessionID.

using System;
using System.Configuration;
using System.Web.Configuration;
using System.Web;
using System.Web.SessionState;

namespace Samples.AspNet.Session
{

  public class GuidSessionIDManager : SessionIDManager
  {

    public override string CreateSessionID(HttpContext context)
    {
      return Guid.NewGuid().ToString();
    }

    public override bool Validate(string id)
    {
      try
      {
        Guid testGuid = new Guid(id);

        if (id == testGuid.ToString())
          return true;
      }
      catch
      {
      }

      return false;
    }
  }
}
Imports System.Configuration
Imports System.Web.Configuration
Imports System.Web
Imports System.Web.SessionState


Namespace Samples.AspNet.Session

  Public Class GuidSessionIDManager
    Inherits SessionIDManager

    Public Overrides Function CreateSessionID(context As HttpContext) As String
      Return Guid.NewGuid().ToString()
    End Function

    Public Overrides Function Validate(id As String) As Boolean
      Try
        Dim testGuid As Guid = New Guid(id)

        If id = testGuid.ToString() Then _
          Return True
      Catch
      
      End Try

      Return False
    End Function

  End Class

End Namespace

Om du vill använda den anpassade klass som visas i det här exemplet konfigurerar du attributet sessionIDManagerType för elementet sessionState Element (ASP.NET Settings Schema) element, enligt följande exempel.

<sessionState
  Mode="InProc"
  stateConnectionString="tcp=127.0.0.1:42424"
  stateNetworkTimeout="10"
  sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
  sqlCommandTimeout="30"
  customProvider=""
  cookieless="false"
  regenerateExpiredSessionId="false"
  timeout="20"
  sessionIDManagerType="Your.ID.Manager.Type,
    CustomAssemblyNameInBinFolder"
/>

Kommentarer

Den här metoden är inte avsedd att anropas från programkoden.

Metoden CreateSessionID returnerar en unik sessionsidentifierare som är ett slumpmässigt genererat tal som kodas till en sträng med 24 tecken som består av gemener från a till z och tal från 0 till 5.

Anteckningar till arvingar

Du kan ange en anpassad sessionsidentifierare som ska användas av ASP.NET sessionstillstånd genom att skapa en klass som ärver klassen SessionIDManager och åsidosätter metoderna CreateSessionID(HttpContext) och Validate(String) med dina egna anpassade implementeringar. Om ditt anpassade sessions-ID inte uppfyller de teckenbegränsningar som tillämpas av standardimplementeringen av Validate(String) metoden bör du åsidosätta Validate(String) metoden för att tillhandahålla verifiering av din anpassade sessionsidentifierare. I det här fallet SessionIDManager ser klassen till att din anpassade sessionsidentifierare är URL-kodad i HTTP-svaret och URL:en som avkodas från HTTP-begäran med hjälp av Encode(String) metoderna och Decode(String) .

Gäller för

Se även