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

时间:2008-08-04 23:06:23

标签: asp.net profile

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

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

我现在能想到的优缺点是因为我不太了解这个配置文件(现在它有点像 Matrix ),我可能会做任何事我我希望如果我去表路线(例如,SQL以获得与当前用户相同的邮政编码中的所有用户)。如果我使用ASP.NET配置文件,我不知道是否可以这样做。

5 个答案:

答案 0 :(得分:10)

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

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

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

答案 1 :(得分:1)

用户配置文件是一个很好的清洁框架,用于个性化定制(AKA。配置文件属性)。 (例如iGoogle) 它的问题是它不是为查询而设计的,不适合公共用户的数据共享。(你仍然可以做到这一点,性能低下)

因此,如果您想增强自定义用户体验,用户个人资料将是一个不错的选择。否则,使用你自己的类和表将是一个更好的解决方案。

答案 2 :(得分:0)

我认为最好将它用于对用户来说并不重要的补充数据,这对于用户无论如何都要登录通常很重要。如果全部擦除数据,那么认为不会破坏任何重要的数据。

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

同样非常有用,因为它可以用于未经身份验证的用户,其配置文件使用匿名cookie进行维护。

答案 3 :(得分:0)

根据我的经验,最好将配置文件中的信息保持在最低限度,只将基本信息放在那里直接用于身份验证。其他信息(如地址)应由您自己的应用程序逻辑保存在您自己的数据库中,这种方法更具可扩展性和可维护性。

答案 4 :(得分:0)

我认为这取决于您需要多少个字段。据我所知,Profiles本质上是一个长字符串,在给定的字段大小下被拆分,这意味着如果你有很多字段和用户,它们就不能很好地扩展。

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

滚动自己的东西可以让你把它放在一个正确规范化的数据库中,这可以大大提高性能,但你必须自己编写几乎所有的配置文件管理代码。

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

如果您正在考虑编写自己的东西,也许custom Profile Provider可以为您提供两全其美 - 无缝集成,以及您想要做的自定义内容。