Wpis z mikrobloga

Mam problem, robię sobie projekt (ASP.NET Core 2.0), gdzie będzie kilka ról (używam JWT), każda będzie rozszerzoną wersją innej (user ma swoje prawa, mod jest userem + modem, admin ma moda plus coś jeszcze itp), prosta hierarchia. Da się zrobić tak, żeby user mógł mieć jedną rolę (skoro jest modem, to wiadomo że jest też userem) z pominięciem niższych i nie dodawać wielu ról do [authorize]? Chodzi mi o to, żeby do kontrolera z dostępem tylko dla "user" mógł się dostać też ktoś z pojedynczą rolą "admin" (bo jest ważniejszy, wyżej w hierarchii), ale żeby "user" nie mógł się dostać do kontrolera z dostępem dla adminów (bo ma niższą rangę).

#naukaprogramowania #programowanie #csharp #jwt #aspnet #aspnetcore
  • 3
  • Odpowiedz
@Goglez: services.AddAuthorization(x => x.AddPolicy("IsUserOrAbove", p => p.RequireRole("admin", "mod", "user")));

cos na takiej zasadzie. I potem kontroler oznaczasz:
[Authorize(Policy = "IsUserOrAbove")]

i analogicznie inne - "IsModOrAbove"

tak chyba najprosciej
  • Odpowiedz