SessionIDManager.CreateSessionID(HttpContext) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.