在不创建其他表的情况下实现ASP.NET MVC5标识
本文关键字:ASP 实现 NET MVC5 标识 情况下 创建 其他 | 更新日期: 2023-09-27 18:26:15
我使用的是实体框架DBFirst
。"我的用户"表的格式为:
id,电子邮件,fn,ln,密码,角色。
因此,基本上,用户可以是客户端,也可以是管理员。我使用本教程成功地实现了Identityhttp://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1但我不知道下一步该怎么办。我想使用这种格式的数据库,而不创建另一个表。
我想要这样:如果你是一个客户,你只能转到2页。如果你作为一名管理员,你可以在页面上自由地做任何你想做的事情。如果你未登录,如果您想在上导航,则必须登录网站。
谢谢。
您可以在迁移前将第一个表中的列作为列添加到User表中,从而添加这些列(但请记住,当然不能有两个具有相同名称的Id):
public class ApplicationUser : IdentityUser
{
public int id {get;set;}
public string email {get;set;}
//The rest o
}
为了控制谁可以访问在您希望特定身份组能够访问的操作之上设置的数据注释,如下所示:
[Authorize(Roles = "Admin")]
public ActionResult AdminsOnlyPage()
{
return View();
}
如果你想让整个类不被登录,可以将数据注释添加到类级别(不指定用户或角色),这将使所有操作在登录之前都无法访问:
[Authorize]
public class MyClass
{}