我希望能夠在轉移到另一個應用程序時使用相同的Session變量。Response.Redirect是否使用相同的會話或啓動一個新的會話?
Response.Redirect是否使用相同的會話或啓動一個新的?
我使用C#,ASPNET 3.5
我希望能夠在轉移到另一個應用程序時使用相同的Session變量。Response.Redirect是否使用相同的會話或啓動一個新的會話?
Response.Redirect是否使用相同的會話或啓動一個新的?
我使用C#,ASPNET 3.5
Response.Redirect
不做任何處理的會話。會話與(通常)綁定到與Web應用程序的URI關聯的cookie。如果您切換到另一臺服務器上的另一個Web應用程序或單獨的URI,即使您設法保留Cookie,會話也不會繼續。
你能澄清你想解決什麼問題嗎?
它使用相同的會話。
編輯:這是假設新的URL本來會使用同一個會話。
Response.Redirect
向瀏覽器發送HTTP響應,其狀態碼爲302 Found
,標頭爲Location: {redirection-url}
。
瀏覽器接收到此響應,並知道在接收到狀態碼爲302 Found
的響應時向{redirection-url}
發送新請求。
就是這樣。
Response.Redirect
不會啓動,停止或與任何會話有關。
如果您嘗試訪問來自其他應用程序的會話變量,那麼就不會像我記得那樣工作。會話變量只在一個應用程序內有效。
如果您嘗試重定向到同一應用中的另一個文件夾,則會話變量可用。
如果這兩個應用程序確實是分開的,您可以考慮將會話對象存儲在數據庫中,並使用POST或url參數將sessionID傳遞給新應用程序,但這些都不是非常安全的,應用程序開放的黑客攻擊沒有適當的照顧,以確保用戶的身份。
我想訪問在app2中設置的app1中的值,而不將其作爲參數傳遞給url。 – 2009-07-02 15:06:55
我不認爲這是行得通的。不過,您可以將其張貼。 – AndyMcKenna 2009-07-02 15:07:55