Проверка подлинности на основе ролей для обновления свойства объекта - PullRequest
0 голосов
/ 20 января 2020

Существуют следующие классы сущностей.

public class User : IEntity
{
    public int Id { get; set; }

    public string Username { get; set; }
    public string Password { get; set; }
    public string Fullname { get; set; }

    public virtual ICollection<Role> Roles { get; set; }
    public virtual ICollection<Call> Calls { get; set; }
}

public class Role : IEntity
{
    public int Id { get; set; }

    public string Name { get; set; }

    public virtual ICollection<User> Users { get; set; }
}

public class Contact : IEntity
{
    public int Id { get; set; }
    public string Phone { get; set; }
    public string CallReason { get; set; }
    public string CallResult { get; set; }
    public DateTime? Date { get; set; }
}

Я написал необходимые коды и, используя postsharp, могу предотвратить несанкционированный доступ к методам на сервисном уровне. Например:

[AuthorizationAspect("Admin")]
public void Update(Contact contact) =>
    _postDal.Update(contact);

Например, я хочу, чтобы кто-то с ролью пользователя не имел полномочий на свидание только в классе контактов. Таким образом, только администратор может изменить поле даты. Поэтому я хочу авторизоваться не по функции, а по свойству. Это имеет лучшую практику? Библиотека, которую я могу использовать? Или я должен сделать это вручную?

...