Какая переменная состояния является лучшей в global.ascx? - PullRequest
0 голосов
/ 09 июля 2011

По некоторым причинам я переопределяю функциональность аутентификации и работаю с ней своими собственными таблицами БД.

Единственная проблема, с которой я столкнулся на данный момент, заключается в том, что я использую Session для хранения некоторых данных, и иногда я теряю их значение в Global.ascx.

Я прочитал несколько вопросов по SO, например , и , , и на самом деле я не буду сейчас исследовать возможные причины, поэтому я спрашиваю:

Является ли сессия лучшим состоянием кэша для моего случая? или я должен использовать что-то еще, например, печенье?

Примечание: сохраненные данные являются привилегиями для пользователя и некоторых других данных, связанных с пользователем.

Ответы [ 2 ]

1 голос
/ 09 июля 2011

С того момента, как у вас есть собственные таблицы БД для аутентификации, вам легко создать еще одну таблицу для данных сеанса и соединить ether аутентифицированного пользователя с этой таблицей, ether анонимного пользователя с.

Что я говорю, так это то, что вы можете дать уникальный файл cookie каждому из вас, а затем связать этот файл cookie со своими данными в новых данных таблицы сеансов, и оттуда вы получите необходимые данные.

Ключевым моментом здесь является то, что вы должны очищать данные таблицы сеансов каждую минуту, так же, как MS, когда вы используете данные сеансов в базе данных.Ясно, я имею в виду удаление сеансов тайм-аута.

И второе, чтобы быть уверенным, что каждый пользователь получает уникальный кодированный файл cookie.

В моем приложении я использую 2 разные таблицы по той же причине.Одна таблица для запоминания некоторых опций на пользователя на компьютер и одна для дополнительных данных сеанса.

0 голосов
/ 10 июля 2011

Я бы согласился с Джоном Сондерсом, рассматривали ли вы вместо этого использование специального поставщика членства?

Реализация поставщика членства

Наследовать и реализовывать / переопределять при необходимости? Чтобы подтвердить это, вам все равно нужно будет использовать сеанс или аналогичный, но если вы хотите, чтобы данные сохранялись между сеансами, используйте куки. При этом хранение такой информации, как привилегии / пользовательские разрешения на клиенте, может быть проблемой с точки зрения безопасности, если только вы не шифруете ее каким-либо образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...