ASP.net MVC4 - 如何进行用户和角色管理
本文关键字:用户 角色 管理 何进行 net MVC4 ASP | 更新日期: 2023-09-27 17:57:02
我想使用 MVC4 创建小网页,因此我认为没有任何理由进行自定义身份验证,我想使用已经实现和有效的身份验证。我的问题是默认情况下我无法从浏览器管理用户和角色。出于这个原因,我想实现我自己的简单管理。问题是我不知道如何通过实体框架访问成员表。当我启动应用程序时,Web表单身份验证在我的数据库中创建表。在我停止应用程序并从我的数据库中为实体框架创建数据模型后,我从 Web 表单身份验证中收到许多错误。
所以我的问题是:当我想访问成员资格数据时,我是否必须使用已经创建的模型,或者是否有任何简单的方法可以通过实体框架访问它?
没那么简单。首先使用 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>
模式也会很好。