SessionIDManager.CreateSessionID(HttpContext) 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.
Skapar en unik sessionsidentifierare för sessionen.
public:
virtual System::String ^ CreateSessionID(System::Web::HttpContext ^ context);
public virtual string CreateSessionID(System.Web.HttpContext context);
abstract member CreateSessionID : System.Web.HttpContext -> string
override this.CreateSessionID : System.Web.HttpContext -> string
Public Overridable Function CreateSessionID (context As HttpContext) As String
Parametrar
- context
- HttpContext
Det aktuella HttpContext objektet som refererar till serverobjekt som används för att bearbeta HTTP-begäranden (till exempel Request egenskaperna och Response ).
Returer
En unik sessionsidentifierare.
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 konfigurerar du attributet sessionIDManagerType för elementet sessionState Element (ASP.NET Settings Schema) element, enligt följande exempel.
<sessionState
Mode="InProc"
stateConnectionString="tcp=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
sqlCommandTimeout="30"
customProvider=""
cookieless="false"
regenerateExpiredSessionId="false"
timeout="20"
sessionIDManagerType="Your.ID.Manager.Type,
CustomAssemblyNameInBinFolder"
/>
Kommentarer
Den här metoden är inte avsedd att anropas från programkoden.
Metoden CreateSessionID returnerar en unik sessionsidentifierare som är ett slumpmässigt genererat tal som kodas till en sträng med 24 tecken som består av gemener från a till z och tal från 0 till 5.
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ätter metoderna CreateSessionID(HttpContext) och Validate(String) med dina egna anpassade implementeringar. Om ditt anpassade sessions-ID inte uppfyller de teckenbegränsningar som tillämpas av standardimplementeringen av Validate(String) metoden bör du åsidosätta Validate(String) metoden för att tillhandahålla verifiering av din anpassade sessionsidentifierare. I det här fallet SessionIDManager ser klassen till att din anpassade sessionsidentifierare är URL-kodad i HTTP-svaret och URL:en som avkodas från HTTP-begäran med hjälp av Encode(String) metoderna och Decode(String) .