是否使用ASP.NET配置文件?

时间:2010-05-14 22:11:26

标签: asp.net asp.net-membership

我需要存储经过身份验证的用户的一些属性(我正在使用Membership API),我需要在使用Profiles或添加UserId作为PK的新表之间做出选择。看起来使用“个人档案”很快,并且需要预先减少工作量。但是,我看到以下缺点:

  1. 将配置文件值压缩为单个ntext列。在将来的某个时候,我将拥有可以更新用户属性的SQL脚本。查询ntext列并尝试更新值对我来说听起来有些小问题。
  2. 如果我选择添加新的用户特定属性,并希望为所有现有用户分配默认值,是否可以?
  3. 我的第一印象是,从长远来看,使用配置文件可能会导致维护问题。想法?

3 个答案:

答案 0 :(得分:3)

有一篇关于MSDN(现在在ASP.NET http://www.asp.net/downloads/sandbox/table-profile-provider-samples上)的文章讨论了如何创建一个Profile Table Provider。我们的想法是将Profile数据存储在一个表中而不是一行中,这样就可以更容易地用SQL进行查询。

更重要的是,SQL Server 2005/2008支持通过服务和CLR代码获取数据。您可以想象通过API而不是直接访问基础表来访问配置文件数据。

对于第2点,您可以将默认值设置为属性,虽然这不会立即更新其他配置文件,但在下次访问时,配置文件会更新。

答案 1 :(得分:0)

在我看来,你已经回答了自己的问题。如果您的第1点可能发生,那么SQL表是唯一明智的选择。

答案 2 :(得分:-1)

看看这个问题......

ASP.NET built in user profile vs. old stile user class/tables

内置配置文件设计错误的第一个提示是它们在关系数据库中使用分隔数据。在少数情况下,RDBMS中的分隔数据是有意义的,但这绝对不是其中之一。

除非您有特殊原因 使用ASP.Net个人资料,否则我建议您改用单独的表格。