gpt4 book ai didi

asp.net - 存储常用值的最佳方式

转载 作者:行者123 更新时间:2023-12-03 16:56:13 28 4
gpt4 key购买 nike

在我的 Webforms 3.5 应用程序中,我有一个显示用户上次登录时间的 GridView。该值以 UTC 格式存储在 Users 表中。当管理员查看网格时,我希望他们查看管理员在他们的首选项中选择的时区(也存储在用户表中)。

我已经为 GridView 正常工作了:

<ItemTemplate>
<%# TimeZoneInfo.ConvertTimeFromUtc(Eval("LastLoginDateTimeUTC"), TimeZoneInfo.FindSystemTimeZoneById(UserService.GetUser(HttpContext.Current.User.Identity.Name).DisplayTimeZone))%>
</ItemTemplate>

所以在这种情况下,每次创建一行时,都会创建一个用户对象。

我想做的是确定处理返回常用用户特定数据(例如 user.DisplayTimeZone)的最佳方式。我有几个想法,但我想了解其他人是如何做的。我一直在考虑使用用户特定缓存,但在我有更多想法之前不想实现。

我想避免使用 Session 对象,但这不是必需的。我更愿意使用 HttpRuntime.Cache。

此外,一旦确定了这一点,代码应该放在哪里?在 BasePage 类中?在母版页?在 MVP BasePresenter 中?

谢谢~S

最佳答案

我已经使用您提到的用户特定缓存完成了相同的操作。我实际上是在一个单独的命名空间中实现它的,尽管它是静态获取属性。例如:

namespace MyWeb.Session
public static class CurrentUser {
public static int DisplayTimeZone {
get {
// Check cache first.
...

// Cache miss, load from database and store in cache.
...
}
}
}
}

这样,每次我需要该值时,我只需调用 MyWeb.Session.CurrentUser.DisplayTimeZone

关于asp.net - 存储常用值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/433345/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com