MVC 4中的自定义MembershipProvider

时间:2012-12-28 02:06:27

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我开始了解MVC4。作为第一步,我需要执行登录,因为自定义数据库只有数据库中的三个角色。

是否真的需要实施自定义成员资格提供程序?我对此提出质疑是因为我正在阅读这篇文章并且他正在采取另一种方式:http://patrickdesjardins.com/blog/asp-net-membership-with-mvc4

我只需要从自定义数据库中获取用户并确定角色。

确定规则,很简单。我有两张叫做学生和老师的桌子。每个人的Id都是loggin Id和公共属性密码。

if (db.Students.Where(x => x.StudentId == x && x.Password == y) return "student"
if (db.Teachers.Where(x => x.TeacherId == x && x.Password == y) return "teacher"

// does not exist

您能指导我如何在ASP.NET中实现此功能吗?

1 个答案:

答案 0 :(得分:13)

  

注意:下面的内容可能不适用于.NET Core或ASP.NET Core

在开始研究之前,请注意ASP.NET MVC4中的成员资格和角色管理已更改。 (如果您使用的是Visual Studio中的“Internet应用程序”模板)

请阅读Jon Galloway关于已发生变化的blog post

Simple Membership Provider旨在扩展并克服旧成员资格和角色管理系统中的问题(由于它是ASP.NET的一部分,它仍然受支持)

这两种实现都支持角色管理,您可以自由选择任一实现,也可以自行推送。由于两者的局限性,有一些论点更好,有些开发人员更喜欢实现自己的。 (我不会详细说明,因为它可能会有偏见)

这是一个帮助您入门的教程。 [Link] .. 请注意,该教程解释了旧的成员资格系统,而不是新的SimpleMembership / WebSecurity方法。

<强>更新

当您认为自己拥有足够的身份验证框架时,Microsoft已宣布OWIN - Open Web Interface for .NET

OWIN是.NET的一组接口,它们是开放和可插入的,包括身份验证。关于如何使用MVC 5 OWIN Forms身份验证,请参阅这篇文章[Link]。 (希望他们将停止使用此方法创建新的身份验证框架。)