在條件限制不能使用 cookie 的情況下
IIS 中的虛擬目錄 Session 無法共用
就算在相同目錄 asp 與 aspx 也無法共用
考慮安全性與便利性
利用 asp 將所有的 Session 使用 Form Post 的方法傳遞給 aspx 的程式
aspSession.asp
-----------------------------------------------
<html>
<head>
<title>ASP Session</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
Response.Write("<FORM name=trans id=trans action=aspxSession.aspx method=post >")
For Each Item In Session.Contents
If Item <> "SYS_MailSender" then
Response.Write("<input type=hidden name=" & Item)
Response.Write( " value=" & Session(item) & " >")
'Response.Redirect("aspxSession.aspx?target=" + Session(item))
End If
Next
Response.Write("</FORM>")
Response.Write("<scr" + "ipt>trans.submit();</scr" + "ipt>")
%>
</body>
</html>
-----------------------------------------------
再由 aspx 的程式重新設定 Session
aspxSession.aspx.vb
-----------------------------------------------
Public Class aspxSession
Inherits System.Web.UI.Page
' ASP 寫進的 Session 必須要在這轉成 ASP.NET
'本來要用 Request.QueryString 來處理的
'後來考慮安全性,所以用aspSession.asp/Form Action 的方式
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Session("Emp_Id") = Request.QueryString("target")
For i As Integer = 0 To Request.Form.Count - 1
Session(Request.Form.GetKey(i)) = Request.Form(i)
Next
If Session("Emp_Id") = "" Then
Response.Redirect("~/")
Else
Response.Redirect("~/eFormQuot/undertake.aspx")
End If
End Sub
End Class
-----------------------------------------------
沒有留言:
張貼留言