2010-08-05 176 views
3

我知道这已被问了一百万次,但我能找到的只是非常简单的场景或者对我来说没有多大用处的过于复杂的场景(比如巨大的MembershipProvider示例在MSDN实施)。ASP.Net MVC身份验证

这是我的问题:我有一个用户表的数据库。用户有一个用户名,密码和一些其他重要信息。我想要的是能够有页面需要认证,所以如果用户已经订阅了他可以使用他的uname/pwd进行认证的应用程序,否则他可以通过填写所有必需的信息进行注册。没有角色,没有特殊的权限,没有什么,只是简单的简单认证。

我想它应该是直截了当的,我只是想确保它足够脱钩,不想去写我的自定义身份验证系统,如果有一个已经可用并已测试的内置的系统。

谢谢。

编辑:
只是为了澄清,我并不需要一个定制的MembershipProvider,我使用的是SQL Server数据库所以默认提供商应该只是罚款。问题实际上是我如何简单地为用户定义我自己的一套必需信息。

答案:
我最终不得不得出我自己的MembershipProvider类和重写我感兴趣的是方法它比我想象ANS行之有效简单得多。

回答

2

使用Visual Studio(2008,2010),创建一个ASP.NET MVC2应用程序(不用担心,我不建议保留它,只是将它用于学习)。在创建的代码看看界面IMembershipService:

public interface IMembershipService { 
    int MinPasswordLength { get; } 
    bool ValidateUser(string userName, string password); 
    MembershipCreateStatus CreateUser(string userName, string password, string email); 
    bool ChangePassword(string userName, string oldPassword, string newPassword); 
} 

在你的应用程序,你可以实现这个接口,你喜欢的任何方式,例如带有一个使用您存储在Users表中的信息的类。

另一个例子是使用基于WCF的Web服务的类。这是我在最近的一个项目中使用的一种方法。

其余的已经连线并准备好了。

+0

在我自己的Membership类中实现IMembershipService与创建我自己的身份验证系统没有什么不同,它只是一个接口。我想利用更高层次的东西,也就是说,如果有可能的话。无论如何,如果事实证明这是做到这一点的唯一方法,那就这么做吧。 – DrunkenBeard 2010-08-05 09:28:30