2011-03-29 57 views
0

我正在使用使用會話狀態的ASP Classic應用程序。它有很多頁面。我正在慢慢遷移到.NET,約六個月的ETA。從經典ASP - > ASP.NET遷移六個月 - 會話策略?

是否值得改變傳統的asp使用自定義數據庫會話實現該時間框架?或者我應該遷移,以便應用程序之間的功能是分開的,並且不會共享會話?

謝謝!

+1

你是說你想停止在會話中存儲信息並開始存儲它並從數據庫中調用它? – 2011-03-29 21:26:47

+2

是的,是什麼讓你認爲你應該在遷移到ASP.NET時擺脫Session?會話仍受ASP.NET支持並廣泛使用。 – gbs 2011-03-29 21:35:13

+0

我沒有說得那麼對。 ASP.NET應用程序將擁有自己的身份驗證方法,但是我不知道是否應該將Classic更改爲使用會話數據庫,以便可以同時訪問Classic和.NET的人員進行遷移。 – Caveatrob 2011-03-29 23:10:27

回答

0

過去,我通過維護兩個應用程序進行轉換,並在數據庫層之間傳遞兩者之間的認證信息。當用戶請求訪問新的ASP.Net應用程序時,使用GUID和日期時間將條目寫入表中,然後重定向到認證頁面,該頁面檢查表格是否對應於相應的行,僅對一定的時間長度(30s),並有一次性使用。

如果該行存在,授予使用相同用戶名登錄訪問。

+0

Not Lynn從Bits和Bytes BBS中搖搖欲墜? – Caveatrob 2011-03-29 23:09:40

+0

條款44 magnum和mom megademo對你有什麼意義嗎? – Caveatrob 2011-03-30 15:21:54

0

這樣做的一種常見方式是在遷移期間支持兩個會話,並讓asp.net管理跨asp和asp.net的所有資源的身份驗證。

IIS 6及更高版本具有讓您將經典asp資源重定向到aspnet處理程序的功能。 (我相信這是通過wild card application maps

有了這個,你將得到登錄重新指導未授權的會話。

如果你想從asp會話訪問.net會話,一種常用的方法是在.net中創建一個處理程序(例如,稱之爲「/ SessionSynch」),而不是從asp開始,你可以執行一篇文章它,以獲得所有必要的會話數據。在這裏考慮的事情當然是安全的。您希望確保您的.net處理程序檢查請求,並且只有在您的請求來自適當的源時纔會顯示會話信息。

您還可以通過數據庫同步信息。

您可以信賴的asp和asp.net之間的一個常見標識是會話cookie,它可以很容易從雙方中檢索到。如果您啓動了Fiddler,您會注意到,成功驗證後,您的會話cookie將被設置。那麼你可以使用這個cookie從ASP檢索從.NET

0

,我會考慮的兩件事情是會議信息:

在數據庫
  1. 是保留會話數據所需的應用?
  2. 將舊應用程序遷移到新平臺時,您很可能會遇到一些問題。如果有時間,最好在項目結束時更改會話存儲。

如果時間線尚未被接受,並且您只想嘗試添加另一個可交付物,那麼這不應該花費很長時間。

0

最簡單的方法(如你剛剛提到的那樣,它只是短期的)應該有一箇中間腳本(asptoaspx.asp?redirect = aspxscript.aspx),它執行自動錶單發佈(用戶沒有看到它)。這是該腳本的僞代碼。

  1. 用行動= aspxscript.aspx
  2. 對於ASP每個會話變量響應寫HTML形式RESPONSE.WRITE隱藏輸入與名稱=鍵和值=窗體上的會話密鑰的值
  3. 提交使用javascript的形式

通過這種方法,當您從應用程序中的ASP頁面轉到ASPX頁面時,您可以準備好使用會話變量。

希望它有幫助!