1

ASP.NET 可以自动将会话保存到数据库。有什么方法可以将会话保存到 Classic ASP 中的数据库?

我需要使用数据库在 ASP.NET 和 Classic ASP 之间共享会话。如果 Classic ASP 不支持此功能。有没有其他方法可以模拟这个?

4

1 回答 1

0

您将会话状态用于什么?它是为了存储数据,例如让用户在各个页面上登录吗?

您可以将会话信息存储在数据库中,但您需要一种将不同会话状态联系在一起的方法。

跟踪用户“会话”的一种方法是使用您自己的 cookie,该 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
于 2013-11-08T10:09:26.203 回答