ASP.net MVC4 - 如何进行用户和角色管理

本文关键字:用户 角色 管理 何进行 net MVC4 ASP | 更新日期: 2023-09-27 17:57:02

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

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

ASP.net MVC4 - 如何进行用户和角色管理

没那么简单。首先使用 Nuget 包控制台或管理添加实体框架。然后,您应该为数据库创建模型,例如:

 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 的"用户"属性中的用户之一,则必须操作 cookie 来分配它们。检查他的帐户角色属性是否具有管理员值,并添加另一部分 cookie。然后,每次此(或任何其他)用户尝试访问控制器中的安全方法时,您都会检查此cookie。

附言此外,即使在像您这样的紧凑型项目中,使用IRepository甚至IRepository<T>模式也会很好。