SessionIDManager.Validate(String) Metódus

Definíció

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.

A következőre érvényes:

Lásd még