Каков наилучший способ добавить переменную сеанса из базы данных в asp.net? - PullRequest
0 голосов
/ 21 сентября 2011

В моем приложении asp.net MVC я хочу добавить переменную (флаг для той системы, в которой находится пользователь), к которой можно обращаться при загрузке страницы или выполнении пользователем определенных действий. Я решил добавить переменную сеанса для этого (это кажется разумным?), И мне просто нужно взять флаг из таблицы в базе данных. Мой план состоял в том, чтобы установить переменную на Session_Start, но, похоже, это неправильный способ сделать это, так как мне нужно сделать запрос к базе данных, и я не уверен, должен ли я делать это из Global.asax. Где я должен заполнить эту переменную? Или есть лучший способ сделать это?

Заранее спасибо!

1 Ответ

0 голосов
/ 21 сентября 2011

Переменная Session является разумным выбором, и session_start может быть местом для получения значения. Однако, если значение зависит от пользователя, то в таком случае вам нужна идентификация пользователя. Аутентификация установит личность пользователя, а не начало сеанса (оба независимы в ASP.NET) - поэтому вместо session_start лучше сделать ставку Application_AcquireRequestState, где вы должны проверить, аутентифицирован ли пользователь или нет, и если да, то проверить, ваша переменная сеанса была установлена ​​или нет. Если не установлено, вы можете получить значение из базы данных.

Небольшим изменением будет загрузка по требованию, т. Е. Создание метода-обертки для получения значения флага. Метод обертки проверит, было ли значение уже получено или нет - если нет, то будет извлекать его и кэшировать значение в подходящем хранилище (например, состояние сеанса).

...