SessionIDManager.Validate(String) Metod

Definition

Hämtar ett värde som anger om en sessionsidentifierare är giltig.

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

Parametrar

id
String

Sessionsidentifieraren som ska verifieras.

Returer

trueom sessionsidentifieraren är giltig; annars . false

Implementeringar

Exempel

I följande kodexempel visas en klass som ärver SessionIDManager klassen och åsidosätter CreateSessionID metoderna och Validate med metoder som anger och validerar en Guid som 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

Om du vill använda den anpassade klass som visas i det här exemplet ersätter SessionID du HTTP-modulen i din Web.config-fil med din anpassade klass, som du ser i följande exempel.

<httpModules>
  <remove name="SessionID" />
  <add name="SessionID"
       type="Samples.AspNet.Session.GuidSessionIDManager" />
</httpModules>

Kommentarer

Den här metoden är inte avsedd att anropas från programkoden.

Metoden Validate verifierar att den angivna id är en sträng på 24 tecken som består av gemener från a till z och tal från 0 till 5 och att den maximala längden på sessions-ID:t inte överskrider 80 tecken.

Metoden GetSessionID anropar Validate metoden när du hämtar en sessionsidentifierare från en HTTP-begäran för att säkerställa att den angivna sessionsidentifieraren är korrekt formaterad.

Anteckningar till arvingar

Du kan ange en anpassad sessionsidentifierare som ska användas av ASP.NET sessionstillstånd genom att skapa en klass som ärver klassen SessionIDManager och åsidosätta CreateSessionID(HttpContext) och Validate(String) metoder med din egen anpassade implementering. Även när du skapar en anpassad sessionsidentifierare begränsas sessions-ID:t till 80 tecken av SessionIDManager klassen.

Gäller för

Se även