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.GetSessionStaticObjects أسلوب

Visual Studio 2010

يحصل على مرجع إلى الكائنات ثابتة مجموعة للسياق المحدد.

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

public static HttpStaticObjectsCollection GetSessionStaticObjects(
	HttpContext context
)

المعلمات

context
النوع: System.Web.HttpContext
HttpContext منه إلى الحصول على مجموعة الكائنات ثابتة.

القيمة المُرجعة

النوع: System.Web.HttpStaticObjectsCollection
HttpStaticObjectsCollection مجموعة معبأ StaticObjectsالقيمة خاصية لالفرعي HttpContext.

GetSessionStaticObjects لاسترداد مجموعة كائنات ثابتة في عمومي.asax استخدام الأسلوب ملف لتطبيق ASP.NET. سيتم توفير تطبيق وحدة نمطية لالولاية جلسة عمل التي تم إرجاعها HttpStaticObjectsCollectionمجموعة إلى IHttpSessionStateمثيل التطبيق الذي تمت إضافته إلى استخدام سياق الحالي AddHttpSessionStateToContextالأسلوب.

SessionStateStoreProviderBase يمكنك أيضا استخدام GetSessionStaticObjectsأسلوب عند إنشاء SessionStateStoreDataالكائن.

يوضح مثال التعليمة البرمجية التالية في معالج ل AcquireRequestStateحدث في مخصص جلسة عمل-الولاية الوحدة النمطية. وحدة نمطية? باسترداد معلومات جلسة عمل موجودة أو إنشاء معلومات جلسة العمل الجديدة، بما في ذلك HttpStaticObjectsCollectionالتي يتم إرجاعها من مجموعة GetSessionStaticObjectsأسلوب، وإضافته إلى 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
إظهار: