SessionIDManager.Validate(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.