ASP.net mvc4 - 如何使用户和角色管理

时间:2015-06-19 10:21:45

标签: c# asp.net entity-framework asp.net-mvc-4 authentication

我想使用MVC4创建小网页,因此我没有看到任何理由进行自定义身份验证,我想使用已经实现和工作的身份验证。 我的问题是默认情况下我无法从浏览器管理用户和角色。出于这个原因,我想实现自己的简单管理。问题是我不知道如何通过实体框架访问成员资格表。 当我启动应用程序时,webform authentification在我的数据库中创建表。在我停止应用程序并从我的数据库为实体框架创建数据模型后,我从webform身份验证中获得了许多错误。

所以我的问题是:当我想访问会员数据时,我是否必须使用已经创建的模型,或者有什么简单的方法可以通过实体框架访问它?

1 个答案:

答案 0 :(得分:0)

不是那么简单。首先使用Nuget Packages Console或Managment添加实体框架。然后你应该为你的数据库创建模型,如:

 public class User
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]        
        [Column(Order = 1)]
        public long N { get; set; }
        [Required]
        [Column(Order = 2)]
        public string Id { get; set; }   
        public string Login { get; set; }    
        public string Password { get; set; }    
        public int AccountRole { get; set; } 
    }

下一步是创建数据库上下文:

 public class MyDbContext: DbContext, IDisposable where T : class
{
    public DbSet<User> Users { get; set; }        

    public MyDbContext() : base("$DbConnectionString") { }         

    public new void Dispose()
    {
        base.Dispose();            
    }      
} 

将$ DbConnectionString更改为您的连接字符串。

但不要将密码存储为纯文本字符串。加密它。 然后在控制器中,如果用户已经过身份验证并且被识别为MyDbContext的Users属性中的某个用户,则必须操作cookie以分配它们。检查他的AccountRole属性是否具有Admin值并添加另一部分cookie。然后,每当此(或任何其他)用户尝试访问控制器中的安全方法时,您都会检查此cookie。

P.S。 即使在像你这样的紧凑项目上,也可以使用IRepository甚至IRepository<T>模式。