我一直在更改我的项目以合并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。有没有更好的方法来解决此问题?
答案 0 :(得分:1)
如果您想添加“角色”列,然后可以将用户与文件模型进行比较
......
[Required]
public string RoleId{ get; set; }
[ForeignKey("RoleId")]
public IdentityRole Roles{ get; set; }
或者您可以使用两个外键创建中间表-FilemodelId和RoleId