Freigeben über


SessionIDManager.CreateSessionID(HttpContext) Methode

Definition

Erstellt eine eindeutige Sitzungs-ID für die Sitzung.

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

Parameter

context
HttpContext

Das aktuelle HttpContext-Objekt, das auf Serverobjekte verweist, die zum Verarbeiten von HTTP-Anforderungen verwendet werden (z. B. die Request-Eigenschaft und die Response-Eigenschaft).

Gibt zurück

Eine eindeutige Sitzungs-ID.

Implementiert

Beispiele

Das folgende Codebeispiel zeigt eine Klasse, die die SessionIDManager -Klasse erbt und die CreateSessionID -Methode und Validate mit Methoden überschreibt, die eine Guid als SessionIDbereitstellen und überprüfen.

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

Um die in diesem Beispiel veranschaulichte benutzerdefinierte Klasse zu verwenden, konfigurieren Sie das sessionIDManagerType-Attribut des elements sessionState Element (ASP.NET Settings Schema), wie im folgenden Beispiel gezeigt.

<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"
/>

Hinweise

Diese Methode ist nicht für den Aufruf aus Anwendungscode vorgesehen.

Die CreateSessionID Methode gibt einen eindeutigen Sitzungsbezeichner zurück, bei dem es sich um eine zufällig generierte Zahl handelt, die in eine 24-stellige Zeichenfolge codiert ist, die aus Kleinbuchstaben von a bis z und Zahlen von 0 bis 5 besteht.

Hinweise für Vererber

Sie können einen benutzerdefinierten Sitzungsbezeichner bereitstellen, der von ASP.NET Sitzungsstatus verwendet werden soll, indem Sie eine Klasse erstellen, die die SessionIDManager -Klasse erbt, und die CreateSessionID(HttpContext) Methoden und Validate(String) mit Ihren eigenen benutzerdefinierten Implementierungen überschreiben. Wenn Ihre benutzerdefinierte Sitzungs-ID nicht die Zeicheneinschränkungen erfüllt, die von der Standardimplementierung der Validate(String) Methode erzwungen werden, sollten Sie die -Methode überschreiben, um die Validate(String) Validierung Ihres benutzerdefinierten Sitzungsbezeichners bereitzustellen. In diesem Fall die SessionIDManager Klasse wird sichergestellt, dass Ihre benutzerdefinierten Sitzungsbezeichner codiert, in der HTTP-Antwort-URL und URL-decodierter aus dem HTTP-Anforderung mit ist der Encode(String) und Decode(String) Methoden bzw.

Gilt für:

Weitere Informationen