В процессе единственный путь классик, ASP может сохранить состояние сеанса?

Перед PEP 435 Python не имел эквивалента, но Вы могли реализовать свое собственное.

Самостоятельно, мне нравится сохранять его простым (я видел некоторые ужасно сложные примеры в сети), что-то вроде этого...

class Animal:
    DOG = 1
    CAT = 2

x = Animal.DOG

В Python 3.4 ( PEP 435), можно сделать Перечисление базовый класс. Это получает Вас определенная дополнительная функциональность, описанная в PEP. Например, перечислимые участники отличны от целых чисел, и они состоят из name и value.

class Animal(Enum):
    DOG = 1
    CAT = 2

print(Animal.DOG)
# 

print(Animal.DOG.value)
# 1

print(Animal.DOG.name)
# "DOG"

, Если Вы не хотите вводить значения, используйте следующий ярлык:

class Animal(Enum):
    DOG, CAT = range(2)

Enum реализации могут быть преобразованы в списки и повторяемы . Порядок его участников является порядком объявления и не имеет никакого отношения к их значениям. Например:

class Animal(Enum):
    DOG = 1
    CAT = 2
    COW = 0

list(Animal)
# [, , ]

[animal.value for animal in Animal]
# [1, 2, 0]

Animal.CAT in Animal
# True

6
задан casperOne 19 November 2011 в 02:57
поделиться

2 ответа

Да, только в памяти

Из MSDN Полная статья

Реализация ASP

Собственный сеанс ASP может хранить только данные сеанса в памяти. Для хранения данных сеанса в SQL Server, пользовательский COM-объект Microsoft® Visual Basic® 6.0 написан для управления состоянием сеанса вместо использования собственного объекта сеанса. Этот COM-объект будет создаваться в начале каждого веб-запроса и перезагружать данные сеанса с SQL Server. Когда сценарий ASP завершен, этот объект будет завершен, а состояние сеанса будет сохранено обратно на SQL Server.

Основная цель объекта COM-сеанса Visual Basic 6 - предоставить доступ к внутреннему серверу Microsoft® Internet Information Server. объекты. Visual Basic 6. 0 Объект сеанса COM использует класс mySession сборки SessionUtility для хранения состояния сеанса и класс SessionPersistence SessionUtility для загрузки и сохранения данных сеанса с помощью SQL Server. Классы mySession и SessionPersistence предоставляются как объекты COM с помощью утилиты regasm.exe. Утилита regasm.exe может зарегистрировать и создать библиотеку типов для COM-клиента, чтобы использовать классы Framework.

Информация о состоянии сеанса перезагружается во время создания объекта. Конструктор (class_initialize) сначала получит файл cookie сеанса, тайм-аут сеанса (SessionTimeOut) и строку подключения к базе данных (SessionDSN) из объекта Application и создаст экземпляр класса mySession для хранения данных сеанса. Затем конструктор попытается перезагрузить данные сеанса из SQL Server с заданным файлом cookie. Если SQL Server не имеет информации о сеансе или срок действия сеанса истек, будет выпущен новый файл cookie. Если SQL-сервер действительно вернет данные о состоянии сеанса, состояние сеанса будет сохранено в объекте mySession.

5
ответ дан 10 December 2019 в 02:52
поделиться

There's nothing else built in, though in ASP Classic it's pretty easy to build your own session management system. Simplest form being a table in a db like the following:

SessionID int PK, Fields text, Values text, Expires DateTime

Come up with some kind of CSV encoder/decoder for the fields and values and populate a collection on every page. Then save it once the page executes and update the expiration time. Then just have a cookie keep track of the session ID or pass it around in the querystring.

4
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: