Asp.net mvc 4 如何将SimpleMembership与强制用户表一起使用?

Asp.net mvc 4 如何将SimpleMembership与强制用户表一起使用?,asp.net-mvc-4,authorization,simplemembership,Asp.net Mvc 4,Authorization,Simplemembership,我目前正在构建一个ASP.NET MVC4 web应用程序,用于可视化和控制工业设施。现在是时候加强一些用户和角色管理以提供安全性了。经过一段时间的调查,我认为最先进的方法应该是SimpleMembershipProvider。所以我的问题是:出于兼容性和其他原因,我必须单独使用数据库中现有的表,所以我不能简单地集成SimpleMembership,指向我们的数据库,让它自己创建所需的表。我所拥有的就是这个现有的表,它通常如下所示: ID (Integer) UserName (String)

我目前正在构建一个ASP.NET MVC4 web应用程序,用于可视化和控制工业设施。现在是时候加强一些用户和角色管理以提供安全性了。经过一段时间的调查,我认为最先进的方法应该是SimpleMembershipProvider。所以我的问题是:出于兼容性和其他原因,我必须单独使用数据库中现有的表,所以我不能简单地集成SimpleMembership,指向我们的数据库,让它自己创建所需的表。我所拥有的就是这个现有的表,它通常如下所示:

ID (Integer)
UserName (String)
Passwort (String)
UserGroup (Integer) (this would be the equivalent to the role)
有没有一种方法可以使用SimpleMembership?或者-如果没有-您将如何实现替代(可能基于cookie)类型的授权,最好使用属性来检查用户是否基于IsLoggedIn和RequiredUserGroup(4)或类似的内容进行授权

我真的很想使用SimpleMembership机制,但我看不出它应该如何处理给定的数据库字段

非常感谢您在这方面的任何帮助

致以最良好的祝愿, Rob

您可以自定义SimpleMembership以包含应用程序所需的字段,如中所示。UserProfile实体/表是使用此定义生成的

    [Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}
按照参考文章中的说明,您可以轻松地将UserGroup属性添加到此表中。但是在SimpleMembership中,您不在UserProfile中存储密码。密码与SimpleMembershipProvider所需的其他属性一起作为单向散列存储在*webpages\u Membership*表中

更新:
如果您需要保持现有模式并处理密码存储,您最好的选择是。

谢谢您的回答,Kevin!不幸的是,我需要适应这种数据库布局。我希望有一种方法可以覆盖实际的密码检查例程,因为我们有一种特殊的算法来处理密码加密/解密。换句话说:db模式不能被修改或扩展,而我可以在web应用程序的范围内做我喜欢做的事情。我想我得自己建造一些东西。还有其他想法吗?=)请看我的最新答案。考虑到您的限制,我建议您创建一个自定义成员资格提供商。这看起来很有希望,再次感谢。这种技术可能比DIY认证安全得多。我将深入研究它,看看是否可以将它与我的固定db模式结合使用。