ASP.Net Identity Role ограниченные записи базы данных - PullRequest
0 голосов
/ 23 сентября 2018

Я вносил изменения в свой проект, чтобы включить 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; }
}

Я ожидаю, что я смогу добавить роли в файл, но хотя я и указал список IdentityRole в модели, при переносе в базу данных никогда не создавалось сопоставление из FileModel и Roles, и нетупоминание ролей в таблице FileModel.Есть ли лучший способ решения этой проблемы?

1 Ответ

0 голосов
/ 23 сентября 2018

Если вы хотите добавить столбец Role и после этого вы можете просто сравнить своих пользователей с filemodel

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

Или вы можете создать промежуточную таблицу с двумя ForeignKeys - FilemodelId и RoleId

...