Ответ 1
HttpContext.Items["user"] = user;
Вы можете ссылаться на элементы контекста в течение всего запроса, и он будет очищен в конце его.
Я пишу класс проверки подлинности пользователя. Во время запроса есть много ссылок на текущего пользователя, поэтому я хотел бы кэшировать его в памяти вместо вызова базы данных 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();
HttpContext.Items["user"] = user;
Вы можете ссылаться на элементы контекста в течение всего запроса, и он будет очищен в конце его.
Используйте класс HttpContext
. Вы можете добраться до него либо в контексте контроллера HttpContext.Current
.
Коллекция HttpContext.Items
- это то, что вы хотите использовать.