2012-01-12 51 views
0

我正在使用C#构建一个使用ASP.Net 4和MVC3的项目。 ASP.Net成员资格提供程序很好地集成到框架中。 角色检查和一些身份信息,但我有一个问题。 灵活性有限。 我应该从头开始构建一个新的用户管理系统,并在控制器内部丢失方便的短代码等。 有没有其他的选择?ASP.Net会员您的想法?

担心哈希密码,缓存的东西,会话管理只是让我头痛,当我想从头开始构建的东西。

+0

定义“有限的灵活性。”你打算怎么做,默认的会员供应商不会允许? – StriplingWarrior 2012-01-12 20:26:53

+0

[SqlMembershipProvider vs自定义解决方案]的可能重复(http://stackoverflow.com/questions/5445260/sqlmembershipprovider-vs-a-custom-solutions)。另请参阅http://stackoverflow.com/questions/6862222和http://stackoverflow.com/questions/4973820 – StriplingWarrior 2012-01-12 20:28:58

回答

5

我使用ASP成员资格主要用于登录(仅)。然后,我使用数据库特定的表格来实现ASP会员不易轻松适应(或完全)的高度自定义用户特性。如果任何自定义功能“可以”(容易)被ASP Membership Db所容纳......那么我使用它......但大多数情况下,我将自定义用户特定功能放入目标数据库(问题中)。

也...

由于ASP会员功能可以同时管理多个数据库,我从那些它管理运行一个单独的ASP会员数据库实例(除了)。这样的行为已经证明对我来说很友善。

+1

这正是我们所做的。只需将密码外包给sqlmembership数据库,并在应用程序数据库中分别跟踪用户。我们甚至使用我们自己的自定义RoleProvider。 +1用于保持会员数据库与应用程序数据库分开它可能更昂贵,但值得。 – danludwig 2012-01-13 18:43:33

+0

非常值得...谢谢! – 2012-01-13 21:54:25

0

从头开始编写自己的会员系统不会有太多优势。

你会更好地实现一个自定义的成员资格提供程序和角色提供程序 - 这意味着您可以轻松地使用[Authorize]属性和其他内置成员资格角色的东西,然后将所需的任何额外东西添加到自定义提供程序中。

看一看herehere看到什么是参与的MembershipProvider和RoleProvider - 从抽象的MembershipProvider和RoleProvider只是派生,并提供自己的实现