Udostępnij za pośrednictwem


SessionIDManager.Validate(String) Metoda

Definicja

Pobiera wartość wskazującą, czy identyfikator sesji jest prawidłowy.

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

Parametry

id
String

Identyfikator sesji do zweryfikowania.

Zwraca

true jeśli identyfikator sesji jest prawidłowy; w przeciwnym razie , false.

Implementuje

Przykłady

Poniższy przykład kodu przedstawia klasę, która dziedziczy SessionIDManager klasę i zastępuje CreateSessionID metody i Validate metodami, które dostarczają i weryfikują jako klasę 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

Aby użyć klasy niestandardowej pokazanej w tym przykładzie, zastąp SessionID moduł HTTP w pliku Web.config klasą niestandardową, jak pokazano w poniższym przykładzie.

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

Uwagi

Ta metoda nie ma być wywoływana z kodu aplikacji.

Metoda Validate sprawdza, czy podany id ciąg jest ciągiem 24-znakowym składającym się z małych liter od z do z i cyfr od 0 do 5, a maksymalna długość identyfikatora sesji nie przekracza 80 znaków.

Metoda GetSessionID wywołuje metodę Validate podczas pobierania identyfikatora sesji z żądania HTTP, aby upewnić się, że podany identyfikator sesji jest poprawnie sformatowany.

Uwagi dotyczące dziedziczenia

Można podać niestandardowy identyfikator sesji, który ma być używany przez ASP.NET stan sesji, tworząc klasę dziedziczą SessionIDManager klasę i przesłaniając CreateSessionID(HttpContext) metody i Validate(String) przy użyciu własnej implementacji niestandardowej. Nawet podczas tworzenia niestandardowego identyfikatora sesji identyfikator sesji jest ograniczony do 80 znaków według SessionIDManager klasy.

Dotyczy

Zobacz też