ASP.NET 内置用户配置文件 vs. 内置用户配置文件旧式用户类/表

StackOverflow https://stackoverflow.com/questions/1683

  •  08-06-2019
  •  | 
  •  

我正在寻找有关在 ASP.NET 中使用配置文件功能的最佳实践的指南。

您如何决定应在内置用户配置文件中保留哪些内容,或者是否应创建自己的数据库表并为所需字段添加一列?例如,用户有邮政编码,我应该将邮政编码保存在自己的表中,还是应该将其添加到 web.config xml 配置文件中并通过用户配置文件 ASP.NET 机制访问它?

我现在能想到的优点/缺点是,因为我不太了解配置文件(这有点 矩阵 现在),如果我走表路线(例如,SQL 来获取与当前用户相同的邮政编码的所有用户),我可能可以做任何我想做的事情。我不知道如果我使用 ASP.NET 配置文件是否可以做同样的事情。

有帮助吗?

解决方案

我只构建了 2 个使用配置文件提供程序的应用程序。从那时起我就不再使用它了。对于这两个应用程序,我用它来存储有关用户的信息,例如他们的公司名称、地址和电话号码。

这种方法工作得很好,直到我们的客户希望能够通过这些字段之一找到用户。搜索涉及循环 每一个 用户概况并将信息与搜索条件进行比较。随着用户群的增长,搜索时间对我们的客户来说变得不可接受。唯一的解决方案是创建一个表来存储用户信息。搜索速度大大提高。

我建议将此类信息存储在自己的表中。

其他提示

用户配置文件是一个用于个人定制的漂亮干净的框架(又名。配置文件属性)。(例如。igoogle)它的问题不是为查询而设计,也不适合向公共用户进行数据共享的理想。

因此,如果你想增强定制的用户体验,用户配置文件将是一个很好的方法。否则,使用你自己的类和表将是一个更好的解决方案。

根据我的经验,最好将个人资料中的信息保持在最低限度,只将身份验证直接需要的必需信息放在那里。地址等其他信息应该由您自己的应用程序逻辑保存在您自己的数据库中,这种方法更具可扩展性和可维护性。

我认为这取决于您需要多少个字段。据我所知,配置文件本质上是一个长字符串,会按照给定的字段大小进行分割,这意味着如果您有很多字段和用户,它们就不能很好地扩展。

另一方面,它们是内置的,因此这是一种简单且标准化的方式,这意味着没有很大的学习曲线,您也可以在未来的应用程序中使用它,而无需将其调整为新的表结构。

滚动您自己的东西允许您将其放入正确规范化的数据库中,这极大地提高了性能,但是您必须自己编写几乎所有配置文件管理代码。

编辑:此外,配置文件不会被缓存,因此对配置文件的每次访问都会首先进入数据库(然后针对该请求进行缓存,但下一个请求将再次从数据库获取它)

如果你正在考虑写自己的东西,也许 自定义配置文件提供者 为您提供两全其美的功能 - 无缝集成,同时提供您想要做的定制内容。

我认为最好将其用于对用户来说并不重要的补充数据,这些补充数据通常仅在用户登录时才重要。想象一下,如果数据全部被擦除,也不会破坏任何重要的东西。

当然,这是个人偏好,但其他人提出了一些其他重要问题。

考虑到它可用于未经身份验证的用户(其个人资料由匿名 cookie 维护),这也非常有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top