Проверьте Логин в MasterPage, прежде чем обрабатывается ЛЮБОЙ другой код VB.NET - PullRequest
0 голосов
/ 15 ноября 2011

Я разрабатываю приложение, требующее входа в систему.

Я использую мастер-страницы и клиентский веб-контроль, который является моей системой главного меню.

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

Я пытаюсь разместить следующий код:

If Session("hgAdminUser") = "" And InStr(Request.ServerVariables("url"), "/Login.aspx") <= 0 Then _
            Response.Redirect("Login.aspx") ' if userSession is empty, redirect to login page.

В верхней части моего кода MasterPage позади, но он все еще пытается обработать сценарии, основная проблема в том, что он запускает файл .ascs, который требует доступа к базе данных, чего он не может сделать без необходимых параметров из Login.

Я пытался запустить его в подпрограмме Page_PreInit, а также в Page_Load и Page_Init, но во всех случаях он игнорирует это (или, вероятно, не игнорирует, но появляются ошибки до того, как с этим справится) и возвращает большой жирный жир ОШИБКА из-за функций, которые я даже не хочу запускать !!

Итак, в основном, мой вопрос: как я могу проверить переменную сеанса, которая, если ее нет, приводит к игнорированию и перенаправлению всех других сценариев на странице?

Это все с использованием VB.NET

1 Ответ

0 голосов
/ 15 ноября 2011

Необходимо создать отдельную главную страницу для public страниц контента и secure страниц контента.

Вы можете написать следующий код в обработчике события PreInit или Load главной страницы secure.

If IsNothing(Session("hgAdminUser")) Then
   Response.Redirect("~/Login.aspx")
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...