4

我刚刚在 ASP.NET MVC 上开始了一个新项目,这将是第一个实际使用该技术的项目。当我使用 Visual Studio 2010 创建新项目时,它为我的 sql 服务器创建了一堆带有“aspnet_”前缀的表。其中一部分处理内置用户帐户和权限支持。

现在,我想保留一些关于我的用户的特定信息。我的问题是“更改此 aspnet_ 表的结构以满足我对用户帐户信息的需求是一种好习惯吗?”。

我想答案是“不”。(为什么?),我打算创建自己的“用户”表。什么是连接 aspnet_Users 表和我自己的自定义用户表中的记录的好方法。

我希望关系为 1:1,并且数据库中的设计在我的 c# 代码中尽可能透明(如果重要,我将使用 linq to sql)。此外,我不想将用户名和密码从 aspnet_ 表复制到我的表并维护数据。

我正在考虑使用视图加入他们。这是一个好主意吗?

提前致谢!

编辑:从答案中,我看到我可能还不够清楚,我想要什么。问题不是如果使用默认的 asp.net 提供程序,而是如何根据我的需要采用它。

4

3 回答 3

4

我会创建自定义成员资格提供程序并完全省略这些aspnet_x表。我已经看到当join这些表和具有 nhibernate 映射的自定义表时会发生什么 - 纯粹的噩梦。

于 2010-02-23T08:31:50.507 回答
1

如果您选择为您的站点使用 Membership API,则此链接包含有关如何向用户添加额外信息的信息。

我最近遇到了同样的情况,最终放弃了会员功能,并将我自己的数据库解决方案与 DotNetOpenAuth 库结合使用。

于 2010-02-23T01:48:52.460 回答
-1

在 asp.net 中使用会员系统有其优点和缺点。它很容易上手,因为您不必担心验证、用户注册、重置密码。(如果您打算修改表结构,请小心,您必须在生成的视图/存储过程中更改它们

然而,使用 Membership 也有缺点 您将不得不维护 2 个独立的系统,因为 Membership API 有限制,例如,您不能在使用 Membership api 的事务中执行操作。(除非您使用 TransactionScope 我认为,但您没有其他选择)。

一个有效的替代方法是实现您自己的安全验证例程,并使用 FormsAuthentication。这样,您将完全控制您的用户表,并消除对成员资格 API 的依赖。

于 2010-02-23T01:43:04.883 回答