ASP.NET MVC应用程序中的成员资格建议

时间:2010-09-13 13:57:54

标签: asp.net asp.net-mvc asp.net-membership asp.net-profiles

有了这个问题,我主要是在那些已经在他们自己的数据库中实现了现成的ASP.NET成员资格的人那里寻找答案 - 我已经在我的数据库中设置了表,尽我所能看到它们主要包含我需要的东西而不是一切。我将拥有用户所属的公司(公司)的概念,因此我必须将aspnet_Users与我的公司表相关联(每个用户将是一家公司的成员)。

如果可能的话,请提供一些指导原则,如果我将来必须修改表格设计,您是如何做到的以及我可能遇到的问题。我最好使用默认的会员提供商。

我无法决定是从头开始还是使用ASP.NET已经提供的功能。

3 个答案:

答案 0 :(得分:1)

我建议你需要使用一个基于表格的Profile Provider 实现,例如Scott Guthrie在博客中提到的this one。它比开箱即用的配置文件提供程序要好得多,因为它允许您为配置文件信息定义自己的表。在您的情况下,您将拥有一个包含每个用户行和一个FirmId的表以及您喜欢的任何其他内容,例如昵称,社会安全号等等。

它适用于默认的成员资格提供程序,因此您无需对其进行任何更改。示例中有两个实现,一个基于存储过程,另一个基于表。我更喜欢第二种,但它们都很容易使用。

默认配置文件提供程序证明有点垃圾,因为它将所有用户的信息存储在一个字段中。我建议的提供商以非常有效的方式解决了这个问题。

答案 1 :(得分:1)

我决定不使用ASP.NET成员资格提供程序及其默认表,因为未来版本中可能会引入更改,所以我最终最终使用了OmidID的this custom Entity Framework提供程序,尽管我不得不调整它很多。但我现在可以说,我们有一个相当完全的基于实体框架的成员资格提供程序,我们可以轻松地维护和依赖SQL Server中的ASP.NET成员资格表。

答案 2 :(得分:0)

我会将ASP.NET成员资格视为一项单独的服务。只需按原样使用它,并在其上添加任何其他功能。

在这种情况下,只需创建一个表,将用户链接到公司,但不要更改ASP.NET表。如果您需要存储有关用户的任何其他信息,请将其放在与ASP.NET成员资格用户表关联的另一个表中。

更新:我已经开始使用此ASP.NET MVC区域来管理用户和角色https://github.com/TroyGoode/MembershipStarterKit。它配备了所有必要的型号,视图和控制器,并经过全面的单元测试。没有花费超过一个小时的时间将其集成到我的网站中并启动并运行。

相关问题