MVC 4中的自定义MembershipProvider

Dar*_*Zon 5 c# asp.net asp.net-mvc asp.net-mvc-4

我是一个开始学习MVC4的人.作为第一步,我需要执行登录,因为数据库中只有三个角色的自定义数据库.

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

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

确定规则,很简单.我有两张叫做学生和老师的桌子.每个人都有自己的Id作为登录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
Run Code Online (Sandbox Code Playgroud)

你能指导我如何在ASP.NET中实现这些功能吗?

Mad*_*han 13

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

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

请阅读Jon Galloway的博客文章,了解发生了哪些变化.

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

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

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

UPDATE

正当您认为自己拥有足够的身份验证框架时,微软已经宣布了OWIN - .NET开放式Web界面.

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