ASP.NET可以自动将会话保存到数据库。有没有办法在Classic ASP中将会话保存到数据库?
我需要使用数据库共享ASP.NET和Classic ASP之间的会话。如果Classic ASP不支持此功能。有没有其他方法来模拟这个?
答案 0 :(得分:0)
你在使用会话状态是什么?它是存储数据,例如让用户登录各个页面吗?
您可以将会话信息存储在数据库中,但需要一种方法将不同的会话状态绑定在一起。
一种可以跟踪用户“会话”的方法是使用自己的cookie,可以从ASP Classic代码和ASP .Net代码中读取。您可以设置cookie的到期日期,以控制用户在需要重新进行身份验证之前保持登录的时间。您可以使用该cookie存储用户ID信息以及您可能以特定于用户的会话状态存储的任何其他相关信息。
用于设置cookie的ASP Classic代码:
IF HTTPSConnection Then
Response.AddHeader "Set-Cookie",theName & "=" & theValue & "; path=/; HttpOnly; Secure=True; Domain=" & cookieDomainName & "; Expires=" & cookieExpiry
Else
Response.AddHeader "Set-Cookie",theName & "=" & theValue & "; path=/; HttpOnly; Domain=" & cookieDomainName & "; Expires=" & cookieExpiry
END IF
确保在cookie上设置“HTTPOnly”标志,以帮助防止XSS,MITM,cookie劫持攻击。您还可以考虑加密存储在cookie中的数据。
您可以使用以下代码循环访问ASP Classic IIS会话对象:
For Each ss in Session.Contents
response.write Session.Contents(ss) & "<br/>" 'writes out the session contents
Next
For Each so in Session.StaticObjects
response.write Session.StaticObjects(so) & "<br/>" 'writes out the session objects
Next