我正在写一个用户认证类.在请求期间有很多对当前用户的引用,所以我想将其缓存在内存中,而不是调用数据库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;
您可以在整个请求期间引用上下文项目,并在其末尾进行清理.