Asp.net mvc 在会话变量中保存每个用户的utc偏移量,并在用户移动到另一时区或会话过期时刷新它
我正在一个页面上构建一个30天的日历(只有登录的用户才能访问)。 此页面通过此url访问,我无法传递任何其他参数,如日期或utc偏移量 www.mysite.com/controller/calendar/id 我已经根据给我的规格在页面上创建了一个日历。 我在服务器上获取日历数据的方法是从当天开始,一直到接下来的30天。为了做到这一点,我需要每个用户的UTC偏移量,以确保我得到的是他们的本地当前日期,而不是服务器上的本地日期(UTC) 解决方案和问题-我通过在用户登录站点时保存utc偏移量并将其保存在会话变量中(如下所示)部分解决了此问题- System.Web.HttpContext.Current.Session[“UtcOffset”]=100 现在我面临两个问题-Asp.net mvc 在会话变量中保存每个用户的utc偏移量,并在用户移动到另一时区或会话过期时刷新它,asp.net-mvc,session,session-variables,utc,timezone-offset,Asp.net Mvc,Session,Session Variables,Utc,Timezone Offset,我正在一个页面上构建一个30天的日历(只有登录的用户才能访问)。 此页面通过此url访问,我无法传递任何其他参数,如日期或utc偏移量 www.mysite.com/controller/calendar/id 我已经根据给我的规格在页面上创建了一个日历。 我在服务器上获取日历数据的方法是从当天开始,一直到接下来的30天。为了做到这一点,我需要每个用户的UTC偏移量,以确保我得到的是他们的本地当前日期,而不是服务器上的本地日期(UTC) 解决方案和问题-我通过在用户登录站点时保存utc偏移量并将
非常感谢您的建议?您能否在每次访问服务器时刷新/更新您的用户会话?因此,每当用户刷新页面时,其Utc都会发生变化。无论如何,永久会话不是一个好主意,您可能会在服务器中遇到数千个非活动用户会话(取决于用户数量)。您是否尝试过使用本地存储?这不是敏感数据,所以你可以在那里存储偏移量。您不必担心到db的额外往返或会话过期。您是否考虑过使用一些自定义HTTP头,假设您以后可以从服务器访问它?您可以使用它来传递浏览器的时区。