В какое «событие» я должен поместить код -account-ID-session? - PullRequest
0 голосов
/ 24 сентября 2011

В настоящее время я создаю новый сайт, где мои клиенты получают собственный поддомен. например:

user1.mydomain.com
user2.mydomain.com
userDef.mydomain.com
...

Сайт встроен и работает на: IIS, asp.net C #

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

SELECT account_ID where account_subdomain = 'user##' LIMIT 1;

В зависимости от идентификатора и главная страница, и страница содержимого возвращают разные данные / дизайн.

У меня вопрос: в какое «событие» я должен поместить свою функцию, которая помещает accountID в сеанс («accountID»)?

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

Так, есть ли хорошее место, чтобы поставить мою функцию, чтобы проверка идентификатора учетной записи была сделана прежде, чем что-либо еще будет написано на веб-странице?

Спасибо! Матовый

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Один из вариантов - создать HttpModule и поместить туда свой код, поскольку он будет получать запросы страниц до того, как начнется обработка реальной страницы. Это будет гарантировать, что идентификатор вашей учетной записи будет доступен на каждой странице и задан до любого из событий, в которых он вам понадобится.

Если в конечном итоге вы пойдете по этому маршруту, вам нужно будет поместить свой код в события PostAcquireRequestState или PreRequestHandlerExecute, чтобы Session был доступен для изменения.

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

Попробуйте ввести код в событие Page_Init вашей главной страницы. Событие Page_Load на странице содержимого вызывается перед событием Page_Load главной страницы. Однако в случае Page_Init все наоборот.

...