2013-11-08 4 views
1

ASP.NET может автоматически сохранять сеанс в базе данных. Есть ли способ сохранить сессию в базе данных в классическом ASP?Classic asp с использованием ASPState

Мне нужно поделиться сеансом между ASP.NET и классическим ASP, используя базу данных. Если Classic ASP не поддерживает эту функцию. Есть ли другой способ имитации этого?

ответ

0

Для чего вы используете состояние сеанса? Хранить данные и, например, вести учет пользователя на разных страницах?

Вы можете хранить информацию о сеансе в базе данных, но вам нужен способ связывания разных состояний сеанса.

Одним из способов отслеживания пользовательской «сессии» является использование вашего собственного файла cookie, который может быть прочитан из кода ASP Classic и кода ASP .Net. Вы можете установить дату истечения срока действия файла cookie, чтобы контролировать, как долго пользователь должен был войти в систему, прежде чем понадобится повторная аутентификация. Вы можете использовать этот файл cookie для хранения информации о идентификаторе пользователя и любой другой важной информации, которую вы могли бы сохранить в состоянии сеанса, специфичном для пользователя.

ASP Классический код для установки печенье:

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 

Убедитесь, что вы установите «HTTPOnly» флаг на печенье (ы) для защиты от XSS, MITM, печенье угона атак. Вы также можете рассмотреть возможность шифрования данных, хранящихся в файле cookie.

Вы можете цикл через объекты сеанса ASP Классический 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