ASP.NET MVC - 如何处理应用程序的全局设置

时间:2009-04-08 19:15:30

标签: asp.net-mvc

假设每个用户都具有为该用户保存在数据库中的某些首选项。 例如: UnitSystem UILanguage TimeZone ,...

当发出http请求时,我们需要访问用户首选项(例如 UnitSystem TimeZone ,...)以正确处理数据并呈现查看正确的语言

在程序执行期间保存/访问用户首选项的正确方法是什么?

  1. 从数据库中为每个http-request
  2. 读取用户首选项
  3. 当用户登录应用程序并将其保存在会话变量中时,读取一次用户首选项。
  4. 当用户登录应用程序并将其保存在cookie中时,读取一次用户首选项。
  5. 如何处理基于MVC的应用程序中的全局设置?

2 个答案:

答案 0 :(得分:1)

在您的情况下,我可能会将设置存储在会话和cookie中,并按此顺序检查它们:

  1. 检查会话中的变量。
  2. 如果不在会话中,请检查cookie并在会话中存储cookie值。
  3. 如果不在cookie中,请检查数据库并存储在cookie和会话中。
  4. 这样你应该能够处理会话超时&带有cookie的用户非常透明地关闭,同时通过仅在绝对必要时点击数据库来最大化性能。

    当然,如果用户在数据库中更改其首选项,您还需要一些机制来更新cookie和会话。假设这些首选项是在同一个应用程序中设置的,那不应该是一件大事。

答案 1 :(得分:1)

这是配置文件提供程序在ASP.NET中的用途。请查看位于以下位置的名为“ASP.NET配置文件属性概述”的MSDN文档部分:

http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx

然后您可以创建自己的配置文件提供程序(如果提供的配置文件之一不适合您的需要),这将加载/保存配置文件数据。