#asp.net #global
#asp.net #глобальное
Вопрос:
У меня вопрос для новичка .net.
Где было бы хорошим местом для написания некоторого кода, который выполняется глобально перед загрузкой каждой страницы? Некоторые операции, которые я бы выполнил, это:
а) откройте соединение с базой данных б) проверьте сеанс, чтобы увидеть, вошел ли пользователь в систему в) возможно, инициализируйте несколько объектов
Я думал сделать это в главном файле, но не был уверен, что это хорошая идея. И, возможно, для каждой из перечисленных операций, возможно, есть функция в .Net, который уже это делает, так что мне не нужно «заново изобретать» колесо.
Ответ №1:
Я бы создал базовую страницу, от которой наследуются все страницы (кроме главных страниц, поскольку у них другой базовый класс)
Затем вы могли бы переопределить предварительную загрузку на базовой странице и выполнить свои проверки там.
Ответ №2:
Вы могли бы создать базовый класс, который является производным от Page
и имеет реализацию Page_Load
, которая выполняет нужные вам операции. Затем вам нужно изменить все ваши страницы, чтобы они наследовали от этого нового базового класса.
Ответ №3:
Это должен быть глобальный файл.asax.
Комментарии:
1. Возможно, но какое событие, в частности, имеет доступ к состоянию сеанса и т.д.? codetoad.com/asp.net_globalasax.asp
2. Мне интересно, какое событие также запускается при всех загрузках страницы 🙂
3. Не работает, ни одно из событий global.asax не имеет доступа к объекту User (все исключения nullreferenceexception). Не могу использовать его для аутентификации пользователей.