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

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

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

我现在可以想到的优点/缺点是,由于我不太了解该配置文件(现在有点像 Matrix ),如果我愿意,我可以做任何我想做的事情去表路由(例如,SQL来获取与当前用户相同邮政编码的所有用户)。我不知道如果我使用ASP.NET配置文件,是否可以做同样的事情。

0
额外 编辑
意见: 2

5 答案

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

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

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

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

如果您正在考虑编写自己的东西,可能是自定义配置文件提供程序为您提供两全其美的解决方案 - 无缝集成,但您想要做的自定义的东西。

0
额外

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

0
额外
>其他信息(如地址)应该通过自己的应用程序逻辑保存在自己的数据库中,所以这似乎是要走的路,任何人都可以告诉我如何最好地将asp_用户表连接到这个新表?我应该使用asp_table中的userName作为链接,userID(那个丑陋的guid我不知道该怎么得到)或者什么?
额外 作者 csmba,
你也可以推出你自己的用户表,它将保存相同的信息,然后使用会话变量或类似的东西,在这种情况下,你可以完全控制。这次我切换到我自己的用户表,我不后悔。
额外 作者 Sean,

我认为最好使用它来补充对用户来说不重要的补充数据,这在用户无论如何登录时通常都很重要。认为数据不会破坏任何重要的东西,如果全部消失的话。

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

考虑到它可以用于未经身份验证的用户,该用户的个人资料通过匿名cookie进行维护,因此也非常有用。

0
额外

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

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

0
额外

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

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

我建议将这种类型的信息存储在它自己的表中。

0
额外