MVC 4中的自定义MembershipProvider

5

我开始学习MVC4。首先,我需要在自定义数据库中执行登录操作,并且该数据库中只有三个角色。

是否真的有必要实现自定义成员资格提供程序?我有疑问,因为我正在阅读这篇文章,它使用了另一种方式:http://patrickdesjardins.com/blog/asp-net-membership-with-mvc4

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

确定规则非常简单。我有两个表,分别称为Students和Teachers。每个表都有其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

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


你可以扩展内置的 MembershipProviderRoleProvider 来与你的自定义数据库一起使用。 - HTX9
1个回答

13

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

在开始研究之前,请注意,ASP.NET MVC4中的成员资格和角色管理已经发生了变化。(如果您正在使用Visual Studio的“Internet Application”模板)

请阅读Jon Galloway的博客文章了解发生了什么变化。

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

这两种实现都支持角色管理,您可以自由选择任何一种实现,或者自己编写。关于哪种更好,有些开发人员喜欢实现自己的,因为两者都有限制。(我不会详细介绍,因为这可能会带有偏见)

这里有一个教程可以帮助你入门。[Link]。请注意,该教程解释的是旧的会员制度,而不是新的SimpleMembership/WebSecurity方法。

更新

就在你认为你已经有足够的身份验证框架时,微软宣布了 OWIN - .NET的开放Web接口

OWIN是.NET的一组开放和可插拔接口,包括身份验证。请参阅此文章 [Link],了解如何使用MVC 5 OWIN表单身份验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接