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