SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) Yöntem
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.
Geçerli isteğin bağlamından oturum verilerini alır.
public:
static System::Web::SessionState::IHttpSessionState ^ GetHttpSessionStateFromContext(System::Web::HttpContext ^ context);
public static System.Web.SessionState.IHttpSessionState GetHttpSessionStateFromContext (System.Web.HttpContext context);
static member GetHttpSessionStateFromContext : System.Web.HttpContext -> System.Web.SessionState.IHttpSessionState
Public Shared Function GetHttpSessionStateFromContext (context As HttpContext) As IHttpSessionState
Parametreler
- context
- HttpContext
HttpContext Oturum verilerinin alındığı yer.
Döndürülenler
IHttpSessionState Geçerli istekten alınan oturum verileriyle doldurulmuş bir uygulama örneği.
Örnekler
Aşağıdaki kod örneği, özel bir oturum durumu modülünde olayın işleyicisini ReleaseRequestState gösterir. modül, yöntemini kullanarak GetHttpSessionStateFromContext geçerli istek için 'den HttpContext oturum verilerini alır. Bu kod örneği, sınıfı için SessionStateUtility sağlanan daha büyük bir örneğin parçasıdır.
//
// Event handler for HttpApplication.ReleaseRequestState
//
private void OnReleaseRequestState(object source, EventArgs args)
{
HttpApplication app = (HttpApplication)source;
HttpContext context = app.Context;
string sessionID;
// Read the session state from the context
HttpSessionStateContainer stateProvider =
(HttpSessionStateContainer)(SessionStateUtility.GetHttpSessionStateFromContext(context));
// If Session.Abandon() was called, remove the session data from the local Hashtable
// and execute the Session_OnEnd event from the Global.asax file.
if (stateProvider.IsAbandoned)
{
try
{
pHashtableLock.AcquireWriterLock(Int32.MaxValue);
sessionID = pSessionIDManager.GetSessionID(context);
pSessionItems.Remove(sessionID);
}
finally
{
pHashtableLock.ReleaseWriterLock();
}
SessionStateUtility.RaiseSessionEnd(stateProvider, this, EventArgs.Empty);
}
SessionStateUtility.RemoveHttpSessionStateFromContext(context);
}
'
' Event handler for HttpApplication.ReleaseRequestState
'
Private Sub OnReleaseRequestState(ByVal [source] As Object, ByVal args As EventArgs)
Dim app As HttpApplication = CType([source], HttpApplication)
Dim context As HttpContext = app.Context
Dim sessionID As String
' Read the session state from the context
Dim stateProvider As HttpSessionStateContainer = _
CType(SessionStateUtility.GetHttpSessionStateFromContext(context), HttpSessionStateContainer)
' If Session.Abandon() was called, remove the session data from the local Hashtable
' and execute the Session_OnEnd event from the Global.asax file.
If stateProvider.IsAbandoned Then
Try
pHashtableLock.AcquireWriterLock(Int32.MaxValue)
sessionID = pSessionIDManager.GetSessionID(context)
pSessionItems.Remove(sessionID)
Finally
pHashtableLock.ReleaseWriterLock()
End Try
SessionStateUtility.RaiseSessionEnd(stateProvider, Me, EventArgs.Empty)
End If
SessionStateUtility.RemoveHttpSessionStateFromContext(context)
End Sub
Açıklamalar
yöntemi, GetHttpSessionStateFromContext geçerli istekten oturum verilerini almak için bir oturum durumu modülü tarafından kullanılabilir. Bu, isteğin ReleaseRequestState sonundaki olay sırasında oluşur. Döndürülen oturum verileri daha sonra oturum veri deposuna yazılabilir. Oturum bırakıldıysa, oturum verileri ve veri deposundan HttpContextkaldırılabilir ve Session_OnEnd olayı yürütülebilir.
Devralanlara Notlar
İç depodan oturum verilerini kaldırmak için yöntemini ve RaiseSessionEnd(IHttpSessionState, Object, EventArgs) olayı tetiklemek Session_OnEnd
için yöntemini kullanabilirsinizRemoveHttpSessionStateFromContext(HttpContext).