Bagikan melalui


SessionIDManager.CreateSessionID(HttpContext) Metode

Definisi

Membuat pengidentifikasi sesi unik untuk sesi tersebut.

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

Objek saat ini HttpContext yang mereferensikan objek server yang digunakan untuk memproses permintaan HTTP (misalnya, Request properti dan Response ).

Mengembalikan

Pengidentifikasi sesi unik.

Penerapan

Contoh

Contoh kode berikut menunjukkan kelas yang mewarisi SessionIDManager kelas dan mengambil CreateSessionID alih metode dan Validate dengan metode yang menyediakan dan memvalidasi Guid sebagai 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

Untuk menggunakan kelas kustom yang ditunjukkan dalam contoh ini, konfigurasikan atribut sessionIDManagerType dari elemen sessionState Element (ASP.NET Settings Schema), seperti yang ditunjukkan dalam contoh berikut.

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

Keterangan

Metode ini tidak dimaksudkan untuk dipanggil dari kode aplikasi.

Metode ini CreateSessionID mengembalikan pengidentifikasi sesi unik yang merupakan angka yang dihasilkan secara acak yang dikodekan ke dalam string 24 karakter yang terdiri dari karakter huruf kecil dari a hingga z dan angka dari 0 hingga 5.

Catatan Bagi Inheritor

Anda dapat menyediakan pengidentifikasi sesi kustom untuk digunakan oleh status sesi ASP.NET dengan membuat kelas yang mewarisi SessionIDManager kelas dan mengambil CreateSessionID(HttpContext) alih metode dan Validate(String) dengan implementasi kustom Anda sendiri. Jika ID sesi kustom Anda tidak memenuhi batasan karakter yang diberlakukan oleh implementasi Validate(String) default metode, Anda harus mengambil Validate(String) alih metode untuk memberikan validasi pengidentifikasi sesi kustom Anda. Dalam hal ini, SessionIDManager kelas akan memastikan bahwa pengidentifikasi sesi kustom Anda adalah URL yang dikodekan dalam respons HTTP dan URL yang didekodekan dari permintaan HTTP menggunakan Encode(String) metode dan Decode(String) , masing-masing.

Berlaku untuk

Lihat juga