SessionIDManager.Validate(String) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Beolvas egy értéket, amely jelzi, hogy egy munkamenet-azonosító érvényes-e.
public:
virtual bool Validate(System::String ^ id);
public virtual bool Validate(string id);
abstract member Validate : string -> bool
override this.Validate : string -> bool
Public Overridable Function Validate (id As String) As Boolean
Paraméterek
- id
- String
Az érvényesítendő munkamenet-azonosító.
Válaszok
trueha a munkamenet-azonosító érvényes; egyéb esetben. false
Megvalósítás
Példák
Az alábbi példakód egy osztályt mutat be, amely örökli az SessionIDManager osztályt, és felülbírálja a CreateSessionID metódusokat és Validate metódusokat olyan metódusokkal, amelyek a 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
Az ebben a példában bemutatott egyéni osztály használatához cserélje le a SessionID Web.config fájl HTTP-modulját az egyéni osztályra az alábbi példában látható módon.
<httpModules>
<remove name="SessionID" />
<add name="SessionID"
type="Samples.AspNet.Session.GuidSessionIDManager" />
</httpModules>
Megjegyzések
Ezt a metódust nem az alkalmazáskódból kell meghívni.
A Validate metódus ellenőrzi, hogy a megadott id karakterlánc egy 24 karakterből álló karakterlánc, amely a-tól z-ig kisbetűkből és 0 és 5 közötti számokból áll, és hogy a munkamenet-azonosító maximális hossza nem haladja meg a 80 karaktert.
A GetSessionID metódus meghívja a Validate metódust a munkamenet-azonosító HTTP-kérésből való lekérésekor, hogy a megadott munkamenet-azonosító megfelelően legyen formázva.
Megjegyzések az öröklőkhöz
Megadhat egy egyéni munkamenet-azonosítót, amelyet ASP.NET munkamenet-állapot használ, ha létrehoz egy osztályt, amely örökli a SessionIDManager osztályt, és felülírja a CreateSessionID(HttpContext) és Validate(String) metódusokat saját egyéni implementációjával. Még akkor is, ha egyéni munkamenet-azonosítót hoz létre, a munkamenet-azonosító legfeljebb 80 karakter hosszúságú lehet az SessionIDManager osztály számára.