SessionIDManager.CreateSessionID(HttpContext) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy unikatowy identyfikator sesji dla sesji.
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
Parametry
- context
- HttpContext
Bieżący HttpContext obiekt, który odwołuje się do obiektów serwera używanych do przetwarzania żądań HTTP (na przykład Request właściwości i Response ).
Zwraca
Unikatowy identyfikator sesji.
Implementuje
Przykłady
Poniższy przykład kodu przedstawia klasę, która dziedziczy SessionIDManager klasę i zastępuje CreateSessionID metody i Validate metodami, które dostarczają i weryfikują jako klasę GuidSessionID.
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
Aby użyć klasy niestandardowej pokazanej w tym przykładzie, skonfiguruj atrybut sessionIDManagerType elementu sessionState (ASP.NET Settings Schema), jak pokazano w poniższym przykładzie.
<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"
/>
Uwagi
Ta metoda nie ma być wywoływana z kodu aplikacji.
Metoda CreateSessionID zwraca unikatowy identyfikator sesji, który jest losowo wygenerowaną liczbą zakodowaną w ciągu 24-znakowym składającym się z małych liter od z do z i cyfr od 0 do 5.
Uwagi dotyczące dziedziczenia
Można podać niestandardowy identyfikator sesji, który ma być używany przez ASP.NET stan sesji, tworząc klasę, która dziedziczy SessionIDManager klasę i zastępuje CreateSessionID(HttpContext) metody i Validate(String) własnymi implementacjami niestandardowymi. Jeśli identyfikator sesji niestandardowej nie spełnia ograniczeń znaków wymuszonych przez domyślną implementację Validate(String) metody, należy zastąpić Validate(String) metodę w celu zapewnienia weryfikacji niestandardowego identyfikatora sesji. W takim przypadku SessionIDManager klasa zapewni, że niestandardowy identyfikator sesji jest zakodowany w odpowiedzi HTTP i adres URL zdekodowany z żądania HTTP przy użyciu Encode(String) metod i Decode(String) .