diff --git a/PARR.API/Authentication/ParrAuthenticationHandler.cs b/PARR.API/Authentication/ParrAuthenticationHandler.cs index cb3b845c..6574e7fc 100644 --- a/PARR.API/Authentication/ParrAuthenticationHandler.cs +++ b/PARR.API/Authentication/ParrAuthenticationHandler.cs @@ -46,6 +46,8 @@ namespace PARR.API.Authentication var claims = new List { new Claim(ClaimTypes.Name, user.UserIp) }; + // добавляем роли + user.Roles.ForEach(r => claims.Add(new Claim(ClaimTypes.Role, r.Name))); var claimsIdentity = new ClaimsIdentity(claims, Scheme.Name); var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); diff --git a/PARR.API/Controllers/V1/TestController.cs b/PARR.API/Controllers/V1/TestController.cs index 3d98381e..0db12bc7 100644 --- a/PARR.API/Controllers/V1/TestController.cs +++ b/PARR.API/Controllers/V1/TestController.cs @@ -28,8 +28,8 @@ namespace PARR.API.Controllers.V1 /// Получить мой ip /// /// - //[Authorize(Roles = ParrRoles.Administrator.Role)] - [Authorize] + [Authorize(Roles = ParrRoles.Administrator.Role)] + //[Authorize] [HttpGet(ApiRoutes.Test.GetMyIp)] public IActionResult GetMyIp() { diff --git a/PARR.API/Program.cs b/PARR.API/Program.cs index f2923431..d18a05e3 100644 --- a/PARR.API/Program.cs +++ b/PARR.API/Program.cs @@ -35,7 +35,8 @@ builder.Services.AddDallSettings(builder.Configuration); // Auth builder.Services.AddAuthentication(ParrAuthenticationOptions.DefaultScheme) .AddScheme(ParrAuthenticationOptions.DefaultScheme, opt => { }); -builder.Services.AddSimpleRoleAuthorization(); +// не используем, так как проверка ролей остается прежней, а роли подставляем в ParrAuthenticationHandler +//builder.Services.AddSimpleRoleAuthorization(); builder.Services.AddHttpContextAccessor(); diff --git a/PARR.API/RoleProvider/BaseSimpleRoleProvider.cs b/PARR.API/RoleProvider/BaseSimpleRoleProvider.cs index be304f49..ecc82c8a 100644 --- a/PARR.API/RoleProvider/BaseSimpleRoleProvider.cs +++ b/PARR.API/RoleProvider/BaseSimpleRoleProvider.cs @@ -13,6 +13,8 @@ namespace PARR.API.RoleProvider public async Task> GetUserRolesAsync(string ipClient) { + // это всё не используем, так как проверка ролей остается прежней, а роли подставляем в ParrAuthenticationHandler + // Авторизация - проверка на разрешения // В данном случае, получаем все разрешения (роли)