ASP.NET — Глобальное местоположение для выполнения некоторого кода?

#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). Не могу использовать его для аутентификации пользователей.