ISessionIDManager Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Özel oturum durumu tanımlayıcı yöneticisinin uygulaması gereken sözleşmeyi tanımlar.
public interface class ISessionIDManager
public interface ISessionIDManager
type ISessionIDManager = interface
Public Interface ISessionIDManager
- Türetilmiş
Örnekler
Aşağıdaki kod örneği, tanımlama bilgisi tabanlı oturum kimliği yöneticisi uygulayan bir sınıfı gösterir.
using System;
using System.Configuration;
using System.Web.Configuration;
using System.Web;
using System.Web.SessionState;
namespace Samples.AspNet.Session
{
public class MySessionIDManager : IHttpModule, ISessionIDManager
{
private SessionStateSection pConfig = null;
//
// IHttpModule Members
//
//
// IHttpModule.Init
//
public void Init(HttpApplication app)
{
// Obtain session-state configuration settings.
if (pConfig == null)
{
Configuration cfg =
WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
pConfig = (SessionStateSection)cfg.GetSection("system.web/sessionState");
}
}
//
// IHttpModule.Dispose
//
public void Dispose()
{
}
//
// ISessionIDManager Members
//
//
// ISessionIDManager.Initialize
//
public void Initialize()
{
}
//
// ISessionIDManager.InitializeRequest
//
public bool InitializeRequest(HttpContext context,
bool suppressAutoDetectRedirect,
out bool supportSessionIDReissue)
{
if (pConfig.Cookieless == HttpCookieMode.UseCookies)
{
supportSessionIDReissue = false;
return false;
}
else
{
supportSessionIDReissue = true;
return context.Response.IsRequestBeingRedirected;
}
}
//
// ISessionIDManager.GetSessionID
//
public string GetSessionID(HttpContext context)
{
string id = null;
if (pConfig.Cookieless == HttpCookieMode.UseUri)
{
// Retrieve the SessionID from the URI.
}
else
{
id = context.Request.Cookies[pConfig.CookieName].Value;
}
// Verify that the retrieved SessionID is valid. If not, return null.
if (!Validate(id))
id = null;
return id;
}
//
// ISessionIDManager.CreateSessionID
//
public string CreateSessionID(HttpContext context)
{
return Guid.NewGuid().ToString();
}
//
// ISessionIDManager.RemoveSessionID
//
public void RemoveSessionID(HttpContext context)
{
context.Response.Cookies.Remove(pConfig.CookieName);
}
//
// ISessionIDManager.SaveSessionID
//
public void SaveSessionID(HttpContext context, string id, out bool redirected, out bool cookieAdded)
{
redirected = false;
cookieAdded = false;
if (pConfig.Cookieless == HttpCookieMode.UseUri)
{
// Add the SessionID to the URI. Set the redirected variable as appropriate.
redirected = true;
return;
}
else
{
context.Response.Cookies.Add(new HttpCookie(pConfig.CookieName, id));
cookieAdded = true;
}
}
//
// ISessionIDManager.Validate
//
public 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 MySessionIDManager
Implements IHttpModule, ISessionIDManager
Private pConfig As SessionStateSection = Nothing
'
' IHttpModule Members
'
'
' IHttpModule.Init
'
Public Sub Init(app As HttpApplication) Implements IHttpModule.Init
' Obtain session-state configuration settings.
If pConfig Is Nothing Then
Dim cfg As System.Configuration.Configuration = _
WebConfigurationManager.OpenWebConfiguration( _
System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath)
pConfig = CType(cfg.GetSection("system.web/sessionState"), SessionStateSection)
End If
End Sub
'
' IHttpModule.Dispose
'
Public Sub Dispose() Implements IHttpModule.Dispose
End Sub
'
' ISessionIDManager.Initialize
'
Public Sub Initialize() Implements ISessionIDManager.Initialize
End Sub
'
' ISessionIDManager.InitializeRequest
'
Public Function InitializeRequest(context As HttpContext, _
suppressAutoDetectRedirect As Boolean, _
ByRef supportSessionIDReissue As Boolean) As Boolean _
Implements ISessionIDManager.InitializeRequest
If pConfig.Cookieless = HttpCookieMode.UseCookies Then
supportSessionIDReissue = False
Return False
Else
supportSessionIDReissue = True
Return context.Response.IsRequestBeingRedirected
End If
End Function
'
' ISessionIDManager Members
'
'
' ISessionIDManager.GetSessionID
'
Public Function GetSessionID(context As HttpContext) As String _
Implements ISessionIDManager.GetSessionID
Dim id As String = Nothing
If pConfig.Cookieless = HttpCookieMode.UseUri Then
' Retrieve the SessionID from the URI.
Else
id = context.Request.Cookies(pConfig.CookieName).Value
End If
' Verify that the retrieved SessionID is valid. If not, return Nothing.
If Not Validate(id) Then _
id = Nothing
Return id
End Function
'
' ISessionIDManager.CreateSessionID
'
Public Function CreateSessionID(context As HttpContext) As String _
Implements ISessionIDManager.CreateSessionID
Return Guid.NewGuid().ToString()
End Function
'
' ISessionIDManager.RemoveSessionID
'
Public Sub RemoveSessionID(context As HttpContext) _
Implements ISessionIDManager.RemoveSessionID
context.Response.Cookies.Remove(pConfig.CookieName)
End Sub
'
' ISessionIDManager.SaveSessionID
'
Public Sub SaveSessionID(context As HttpContext, _
id As String, _
ByRef redirected As Boolean, _
ByRef cookieAdded As Boolean) _
Implements ISessionIDManager.SaveSessionID
redirected = False
cookieAdded = False
If pConfig.Cookieless = HttpCookieMode.UseUri Then
' Add the SessionID to the URI. Set the redirected variable as appropriate.
redirected = True
Return
Else
context.Response.Cookies.Add(New HttpCookie(pConfig.CookieName, id))
cookieAdded = True
End If
End Sub
'
' ISessionIDManager.Validate
'
Public Function Validate(id As String) As Boolean _
Implements ISessionIDManager.Validate
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
Açıklamalar
Arabirim, ISessionIDManager oturum tanımlayıcısı değerleri için özel bir yönetici oluşturmak için uygulamanız gereken yöntemleri tanımlar. Arabirim ISessionIDManager uygulaması oturum tanımlayıcısı değerlerini oluşturur ve doğrular ve HTTP yanıtında bir oturum tanımlayıcısının depolanmasını ve http isteğinden bir oturum tanımlayıcısı değerinin alınmasını yönetir.
sessionState Öğesi (ASP.NET Ayarlar Şeması) yapılandırma öğesinin özniteliğini kullanarak sessionIDManagerType
özel session-ID yöneticisini etkinleştirirsiniz.
ISessionIDManager Arabirim uygulamanız tanımlama bilgisi olmayan oturum tanımlayıcılarını destekleyecekse, URL'de ISAPI filtresi gibi oturum tanımlayıcılarını göndermek ve almak için bir çözüm uygulamanız gerekir.
Yalnızca ASP.NET oturum durumu tarafından kullanılacak özel oturum tanımlayıcı değerlerini sağlamak istiyorsanız, sınıfı devralan SessionIDManager bir sınıf oluşturabilir ve yalnızca CreateSessionID ve Validate yöntemlerini kendi özel uygulamanızla geçersiz kılabilirsiniz. Bu, HTTP yanıtına değerleri depolamak ve HTTP isteğinden değerleri almak için temel SessionIDManager sınıfa bağlıyken kendi oturum tanımlayıcısı değerlerinizi sağlamanıza olanak tanır. sınıfını SessionIDManager geçersiz kılma ve bu yöntemleri uygulama örneği için sınıfın CreateSessionID yöntemi SessionIDManager için sağlanan örne bakın.
Yöntemler
CreateSessionID(HttpContext) |
Benzersiz bir oturum tanımlayıcısı oluşturur. |
GetSessionID(HttpContext) |
Geçerli HTTP isteğinin bağlamından oturum tanımlayıcısını alır. |
Initialize() |
SessionIDManager Nesnesini başlatır. |
InitializeRequest(HttpContext, Boolean, Boolean) |
Nesnenin istek başına başlatılmasını SessionIDManager gerçekleştirir. |
RemoveSessionID(HttpContext) |
Oturum tanımlayıcısını tanımlama bilgisinden veya URL'den siler. |
SaveSessionID(HttpContext, String, Boolean, Boolean) |
Yeni oluşturulan oturum tanımlayıcısını HTTP yanıtına kaydeder. |
Validate(String) |
Sağlanan oturum tanımlayıcısının geçerli olduğunu onaylar. |