This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

SessionStateUtility.AddHttpSessionStateToContext أسلوب

Visual Studio 2010

يتم تطبيق جلسة عمل البيانات إلى سياق الطلب الحالي.

مساحة الاسم:  System.Web.SessionState
التجميع:  System.Web (في System.Web.dll)

public static void AddHttpSessionStateToContext(
	HttpContext context,
	IHttpSessionState container
)

المعلمات

context
النوع: System.Web.HttpContext
HttpContext الكائن إلى الذي إلى إضافة HttpSessionStateالكائن.
container
النوع: System.Web.SessionState.IHttpSessionState
IHttpSessionState مثيل التطبيق ل إضافة إلى المعين HTTP سياق.

استثناء:شرط
HttpException

HttpSessionState كائن للحالي جلسة عمل لقد أضيفت إلى الفرعي context.

AddHttpSessionStateToContext هو أسلوب يستخدمه إلى وحدة نمطية لالولاية جلسة عمل إلى تطبيق بيانات جلسة عمل إلى الطلب الحالي. يحدث هذا أثناء AcquireRequestStateحدث في البداية طلب. بيانات جلسة العمل للطلب الحالي هو أما استرداد لجلسة عمل exهوting أو تاريخ الإنشاء جلسة عمل جديدة. بيانات جلسة هو ثم تغليفها في IHttpSessionStateتطبيق المثيل، الذي هو التي تم تمريرها إلى AddHttpSessionStateToContextأسلوب مع الحالي HttpContext. بيانات التي تم توفيرها لجلسة عمل هو ثم توفيرها للتعليمات البرمجية للتطبيق من خلال Sessionخاصية في سياق الحالي.

يوضح مثال التعليمة البرمجية التالية في معالج ل AcquireRequestStateحدث في مخصص جلسة عمل-الولاية الوحدة النمطية. وحدة نمطية? المخصصة باسترداد معلومات جلسة عمل موجودة أو إنشاء معلومات جلسة العمل الجديدة و يستخدم AddHttpSessionStateToContextلإضافته إلى أسلوب HttpContextللطلب الحالي. هذا مثال للتعليمة البرمجية هي جزء من مثال أكبر متوفر لفئة SessionStateUtility.


//
// Event handler for HttpApplication.AcquireRequestState
//

private void OnAcquireRequestState(object source, EventArgs args)
{
    HttpApplication app = (HttpApplication)source;
    HttpContext context = app.Context;
    bool isNew = false;
    string sessionID;
    SessionItem sessionData = null;
    bool supportSessionIDReissue = true;

    pSessionIDManager.InitializeRequest(context, false, out supportSessionIDReissue);
    sessionID = pSessionIDManager.GetSessionID(context);


    if (sessionID != null)
    {
        try
        {
            pHashtableLock.AcquireReaderLock(Int32.MaxValue);
            sessionData = (SessionItem)pSessionItems[sessionID];

            if (sessionData != null)
               sessionData.Expires = DateTime.Now.AddMinutes(pTimeout);
        }
        finally
        {
            pHashtableLock.ReleaseReaderLock();
        }
    }
    else
    {
        bool redirected, cookieAdded;

        sessionID = pSessionIDManager.CreateSessionID(context);
        pSessionIDManager.SaveSessionID(context, sessionID, out redirected, out cookieAdded);

        if (redirected)
            return;
    }

    if (sessionData == null)
    {
        // Identify the session as a new session state instance. Create a new SessionItem
        // and add it to the local Hashtable.

        isNew = true;

        sessionData = new SessionItem();

        sessionData.Items = new SessionStateItemCollection();
        sessionData.StaticObjects = SessionStateUtility.GetSessionStaticObjects(context);
        sessionData.Expires = DateTime.Now.AddMinutes(pTimeout);

        try
        {
            pHashtableLock.AcquireWriterLock(Int32.MaxValue);
            pSessionItems[sessionID] = sessionData;
        }
        finally
        {
            pHashtableLock.ReleaseWriterLock();
        }
    }

    // Add the session data to the current HttpContext.
    SessionStateUtility.AddHttpSessionStateToContext(context,
                     new HttpSessionStateContainer(sessionID,
                                                  sessionData.Items,
                                                  sessionData.StaticObjects,
                                                  pTimeout,
                                                  isNew,
                                                  pCookieMode,
                                                  SessionStateMode.Custom,
                                                  false));

    // Execute the Session_OnStart event for a new session.
    if (isNew && Start != null)
    {
        Start(this, EventArgs.Empty);
    }
}

//
// Event for Session_OnStart event in the Global.asax file.
//

public event EventHandler Start;


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: