Uprawnienia użytkowników EntityFrameworkCore

0

Cześć, mam w projekcie tabelę z użytkownikami, gdzie przechowywane są dwa typy użytkowników: admin i zwykły user. Rozróżniam ich po Discriminatorze. Chciałbym teraz umożliwić zmianę uprawnień, czyli w sumie zmianę typu użytkownika. Mając Discriminator chyba nie mogę w łatwy sposób zmienić typu użytkownika? Myślałem o rozbiciu tabeli użytkowników na dwie osobne tabele, gdzie podczas zmiany uprawnień kopiowałbym krotki pomiędzy tabelami. Jakie jest wg Was najlepsze rozwiązanie tego tematu?

2

Takie coś to się wykonuje przy użyciu ról przypisywanych użytkownikowi. W Identity Core masz domyślnie tworzone tabele: AspNetRoles, AspNetUsers oraz many-to-many dla ról: AspNetUserRoles. Nigdzie się nie spotkałem z wykorzystaniem własności Discriminator i nie wiem jak to się w ogóle ma do ról użytkowników i nie wiem jak Ty to proponujesz zrobić (nie wkleiłeś żadnego kodu).

1

Najlepszym rozwiązaniem które nie wymaga dużego nakładu pracy jest użycie wspomnianych wyżej ról. Wykonanie akcji warunkujesz przyporządkowaniem użytkownika próbującego ją wykonać do określonej roli. Takich grup użytkowników możesz mieć dowolną ilość, pozwala to na bardzo elastyczne zarządzanie uprawnieniami.

0

Tym bardziej że role to wbudowany specjalnie do tego mechanizm, posiadający zabezpieczenia i kompatybilny z identity, po co tworzyć coś co już jest i w 100% pewne.
Tym bardziej że tabele i tak i tak masz w bazie jeśli używasz identity

0

@Phoryn:

role to wbudowany (...) posiadający zabezpieczenia

Jakie?

0

@WeiXiao:
Źle to ubrałem w słowa. Chodziło mi o to że jest bo bezpieczne z tego względu że jest to wbudowana funkcjonalność identity. Przetestowane przez tysiące osób na świecie ;)

0

@Phoryn:

Myślę, że w mechanizmie sprawdzającym czy rola A == B nie można wiele zepsuć, tak samo z uprawnieniami.

0

@WeiXiao:
Masz racje ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1