У меня есть несколько страниц, на которых есть контент, который имеет отношение как к вошедшим в систему пользователям, так и не вошедшим в систему пользователям.Например, страницы с контактной информацией, политикой конфиденциальности и т. Д. На всех страницах есть типичное навигационное меню, но пользователи, вошедшие в систему, обычно видят строку меню навигации, отличную от тех, которые не вошли в систему.
Что такоеЛучший способ сделать это в ASP.net?
Пока что возможные решения включают в себя следующее:
- Отображение содержимого с помощью всплывающего окна.Страница не будет содержать меню, и просто какая-то базовая страница не должна проверять, какой тип пользователя ее видит.
- Программное изменение главной страницы в зависимости от того, аутентифицирован ли пользователь или нет.Однако на одной из главных страниц есть некоторые переменные, к которым необходимо получить доступ, но не затронутые не зарегистрированными пользователями.
- Помещение контента в пользовательский элемент управления и привязывание этого пользовательского элемента управления к двумотдельные страницы, которые будут отображаться для соответствующего пользователя.
На самом деле я не фанат № 1, потому что пользователи, посещающие сайт впервые, могут иметь какой-то тип блокировщика всплывающих окон или отключить JavaScript.
Я знаю, # 2 возможно, если страница использует некоторый тип базового класса, унаследованного от MasterPage.Тем не менее, я читал, что это может быть не лучший дизайн, так как теперь одна из страниц имеет доступ к переменным, которые на самом деле не нужны.
Третий метод звучит разумно, но тогда будет два отдельныхASPX файлы.
Есть ли правильный способ сделать это?Или другой метод, о котором я еще не думал?
edit
Чтобы уточнить, вошедшие в систему пользователи должны установить определенные переменные на своих главных страницах, где пользователи не вошли в системуне делайте.Причина этого заключается в том, что существует пользовательский элемент управления, который отображает специальное меню навигации, в котором будут выделены определенные элементы в зависимости от этих переменных.
Например, пользовательский элемент управления требует строку, чтобы определить, какой элемент следует выделить.Страница с информацией о профиле предоставит «профиль» в качестве параметра, который выделит пункт «Профиль» в меню.
Меню в пользовательском элементе управления создается динамически на основе данных из базы данных.Пункты меню сгруппированы по категориям и отображаются с соответствующим заголовком, который также извлекается из БД.