实现ASP.NET MVC5标识而不创建另一个表

时间:2015-12-09 07:19:56

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

我正在使用实体框架DBFirst。我的用户表格格式为:

  

ID,电子邮件,FN,LN,密码,角色。

基本上,用户可以是客户端,也可以是管理员。 我已经使用本教程http://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1成功实现了Identity,但我不知道接下来应该做什么。我想使用这种格式的数据库,而不创建另一个表。

  

我想要这个:如果你是客户,你只能去2页。如果你   是管理员,您可以随意在页面上执行任何操作。如果你   如果您不想登录,则必须登录才能登录   网站。 (做了这个)

感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过在迁移前将其添加为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
{}