ASP.Net身份角色限制的数据库条目

时间:2018-09-23 02:04:35

标签: asp.net asp.net-mvc asp.net-identity

我一直在更改我的项目以合并ASP.Net Identity。 现在,我已经停止了一个特定的问题。 我有一个称为“文件”的模型,而且我必须能够添加只有特定角色的用户才能看到的文件。 假设我添加了一个仅适用于开发人员,测试人员和管理员的报告,但是HumanResources和Accounting不应看到该条目。

我这样指定模型:

public class FileModel
{
    [Key]
    [Required]
    public Guid Id { get; set; }

    [Required]
    [Display(Name = "File Name")]
    [StringLength(50)]
    public string Name { get; set; }

    [StringLength(280)]
    public string Description { get; set; }

    [Required]
    public string Filetype { get; set; }

    [Required]
    public string Path { get; set; }

    [Required]
    [Display(Name = "Allowed Users")]
    public virtual List<IdentityRole> Roles { get; set; }
}

我希望能够将Roles添加到文件中,但是即使我在模型中指定了IdentityRole列表,在迁移数据库时也从未在数据库中创建FileModel和Roles的映射。在FileModel表中未提及Roles。有没有更好的方法来解决此问题?

1 个答案:

答案 0 :(得分:1)

如果您想添加“角色”列,然后可以将用户与文件模型进行比较

    ......
    [Required]
    public string RoleId{ get; set; }
    [ForeignKey("RoleId")]
    public IdentityRole Roles{ get; set; } 

或者您可以使用两个外键创建中间表-FilemodelId和RoleId