Я не уверен, что задаю правильный вопрос здесь.
У меня есть общая страница (главная страница), которая вызывает несколько частичных страниц для бокового меню, верхнего колонтитула, нижнего колонтитула и т. Д., И все мои контроллеры наследуют BaseController.
Теперь, в зависимости от статуса входа пользователя, мне нужно показать разные данные на всех этих неполных страницах, и я подумал, где лучше всего проверить, вошел ли пользователь в систему или нет - BaseController.
И в этом заключается моя проблема. Мне нужно связаться с одним из моих веб-сервисов, чтобы проверить, вошел ли пользователь в систему, и получить соответствующие данные, если он есть. Мне нужно сделать это только один раз, и, поскольку все контроллеры наследуются от BaseController, каждый из этих частичных вызовов страницы приводит к вызову веб-службы.
Очевидно, что я не могу просто вставить приватную переменную bool isUserAuthenticated
и проверить флаг, так как у каждого контроллера будет новый экземпляр базового контроллера.
В традиционных проектах asp.net я поместил бы этот материал в HttpContext.Current.Items[]
и использовал бы его повторно, но я не могу (каким-то образом) получить доступ к нему в MVC.
Я не могу просто не наследовать от базовой страницы на неполных страницах, так как они также могут вызываться независимо, и тогда мне тоже нужно знать статус входа пользователя.
Каков наилучший способ вызвать функцию только один раз или, скорее, сохранить значение bool только на время одного вызова? - доступно между контроллерами ..
Как люди это делают?
спасибо, извините, я новичок в MVC!