存储用户应用程序设置,最佳实践和/或建议

时间:2010-12-15 13:24:05

标签: .net web-applications configuration

我的网络应用中有一些硬编码值需要用户​​配置,例如电子邮件发送到哪里,活动语言和其他一些属性。 web.config文件似乎是存储此信息的一个很好的候选者,但是在部署应用程序时必须处理写入权限,这使我无法使用web.config。 db表可能是另一种解决方案......但它感觉有点难看。

最适合存储此信息的地方是什么?

7 个答案:

答案 0 :(得分:2)

对于Web应用程序,最好的办法是将信息存储在数据库表中。

web.config适用于应用程序的配置设置,而非用户。

答案 1 :(得分:1)

在我使用的应用程序中,使用了以下区别:

  • Web服务器上的设置文件:特定于Web服务器的设置,而不是与其连接的数据库(例如,使用哪个主题,使用哪个邮件服务器)
  • 数据库表:特定于数据库或当前用户的设置,并非特定于用户正在处理的客户端计算机(例如,用于发送邮件的模板)
  • Cookies / localstorage:特定于客户端计算机的设置(例如,可移动面板的布局,因为在不同的屏幕上,您需要不同的布局)

在所有情况下都存在一个API,它抽象出读取或写入设置的细节。

答案 2 :(得分:0)

他们是“每个用户”吗?

如果是这种情况,我会在数据库中存储这样的东西。

答案 3 :(得分:0)

在我看来,数据库是存储此类信息的最佳位置。也就是说,最终用户(而不是系统管理员)可以轻松修改并且相对不稳定的信息。您可以在应用程序级别轻松缓存此信息,以防止不得不一遍又一遍地访问数据库。另外请记住,即使您以编程方式执行操作,更改web.config中的值也会导致应用程序重新启动。不一定是您希望最终用户有能力做的事情。

答案 4 :(得分:0)

web.config对我来说似乎不是一个好的候选人:

  • 它是应用程序的一部分,正如您所说,您的应用程序甚至可能无权编写它。
  • 当您有多个具有不同设置的用户时会发生什么?
  • 如果您的应用程序已签名,则部署后无法更改web.config。

如果您的用户已在您的数据库中定义,那么最合理的解决方案就是将其放在那里。

答案 5 :(得分:0)

您使用的是ASP.NET成员资格提供程序吗?它包含一个“配置文件”部分,可让您按用户设置存储/检索。

答案 6 :(得分:-1)

我认为你必须尝试资源文件。