如何将SimpleMembership与强制用户表一起使用?

时间:2013-05-13 10:35:25

标签: asp.net-mvc-4 authorization simplemembership

我目前正在构建一个用于可视化和控制工业设施的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机制,但我看不出它应该如何与给定的数据库字段一起使用。

非常感谢任何帮助!

祝你好运, 罗布

1 个答案:

答案 0 :(得分:0)

您可以自定义 SimpleMembership 以包含应用所需的字段,如this article所示。 UserProfile 实体/表具有此定义的开箱即用。

    [Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}

按照参考文章中的说明,您可以轻松地将 UserGroup 属性添加到此表中。但是在 SimpleMembership 中,您不会将密码存储在 UserProfile 中。密码作为单向哈希存储在* webpages_Membership *表中,以及 SimplemMembershipProvider 的其他必需属性。

<强>更新 如果您需要保持现有架构和密码存储处理,最好的选择是create a custom membership provider as described in this tutorial