SessionIDManager.CreateSessionID(HttpContext) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.