我們有一個搜索結果頁面,用戶可以通過多種方式點擊。 90%的方法將建立一個「搜索標準」會話對象,結果頁面將用來檢索搜索結果。ASP.NET會話 - 如何知道由於到期或初次訪問而導致會話是否爲新會話?
當未找到會話對象時,我們通常會向用戶顯示「無效搜索」消息,併爲他們提供指向主搜索頁面的鏈接。
例外情況是用戶點擊一個包含搜索結果頁面的網頁,因爲它是默認頁面(我們使用.NET的主題爲我們的網站提供私有標籤,並使用我們的附屬公司的顏色和徽標對其進行蒙皮)。如果搜索結果頁面是網站的默認頁面,則會在沒有會話條件時執行特殊搜索。
這在我們的測試中運行良好,但我們想要處理一個邊緣案例:當某人在搜索結果頁面上的某個會話過期時(他們來自搜索頁面),然後單擊結果的下一頁,他們將得到這個特殊的搜索,而不是'過期的會話'消息。
這是我們使用的基本格式,其中searchCriteria是從會話中設置的。
if (searchCriteria == null)
{
if (/*Check if this is the default url for this site*/)
{
//Preform special search
}
else
{
//Display 'session expired message'
}
}
有沒有辦法,我們可以在內部檢查會話是否塊,看看如果用戶的會話新由於現有的過期?或者瀏覽器在會話過期時丟棄會話cookie?
瀏覽器與瀏覽器有區別嗎?有些會將過期的會話cookie返回給服務器,而其他會在到期時刪除它們嗎?還是一致?
謝謝!這些文章應該有所幫助。 – Jeff 2008-12-04 14:10:42