SessionIDManager.CreateSessionID(HttpContext) Methode

Definition

Erstellt einen eindeutigen Sitzungsbezeichner 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 und Request die Response Eigenschaften).

Gibt zurück

Ein eindeutiger Sitzungsbezeichner.

Implementiert

Beispiele

Das folgende Codebeispiel zeigt eine Klasse, die die SessionIDManager Klasse erbt und die CreateSessionID Methoden Validate mit Methoden überschreibt, die eine Guid als 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

Um die in diesem Beispiel veranschaulichte benutzerdefinierte Klasse zu verwenden, konfigurieren Sie das sessionIDManagerType-Attribut des sessionState-Elements (ASP.NET Settings Schema)-Element, 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 soll nicht aus Dem Anwendungscode aufgerufen werden.

Die CreateSessionID Methode gibt einen eindeutigen Sitzungsbezeichner zurück, der eine zufällig generierte Zahl ist, die in eine 24-stellige Zeichenfolge mit Kleinbuchstaben von a bis z und Zahlen von 0 bis 5 codiert ist.

Hinweise für Vererber

Sie können einen benutzerdefinierten Sitzungsbezeichner angeben, der von ASP.NET Sitzungszustand verwendet werden soll, indem Sie eine Klasse erstellen, die die klasse SessionIDManager erbt und die methoden CreateSessionID(HttpContext) und Validate(String) mit Ihren eigenen benutzerdefinierten Implementierungen überschreibt. 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 außer Kraft setzen, um die Validate(String) Überprüfung Des benutzerdefinierten Sitzungsbezeichners bereitzustellen. In diesem Fall stellt die Klasse sicher, dass Ihr SessionIDManager benutzerdefinierter Sitzungsbezeichner in der HTTP-Antwort und der URL-Decodiert von der HTTP-Anforderung mit den Encode(String) entsprechenden Decode(String) Methoden codiert ist.

Gilt für:

Weitere Informationen