Подтвердить что ты не робот

Asp.net mvc - необходимо сохранить некоторые данные для текущего запроса

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

как:

 public static User Current() {
     if (Session["current-user"] == null) {
          Session["current-user"] = GetUserFromDB(); // example function, not real
     }
     return (User)Session["current-user"];

то в запросе app_end:

     Session.Clear();
4b9b3361

Ответ 1

HttpContext.Items["user"] = user;

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

Ответ 2

Используйте класс HttpContext. Вы можете добраться до него либо в контексте контроллера HttpContext.Current.

Коллекция HttpContext.Items - это то, что вы хотите использовать.