Udostępnij za pośrednictwem


SessionIDManager.CreateSessionID(HttpContext) Metoda

Definicja

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) .

Dotyczy

Zobacz też