SessionIDManager.Validate(String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.