У меня есть приложение .netcore mvc, в котором у меня есть роли в классе CustomRoles:
public class CustomRoles
{
///<Summary>Manager role</Summary>
public const string Manager = "Manager";
///<Summary>Publisher role </Summary>
public const string Publisher = "Publisher";
}
В моем контроллере я устанавливаю разрешение на конечную точку:
/// <summary>
/// ASYNC Version: Get a List of Journals based on a Week Id
/// </summary>
/// <param name="weekId">Database unique Week ID</param>
/// <response code="204">No Content</response>
/// <response code="400">Bad Request</response>
/// <returns></returns>
[Authorize(Roles = CustomRoles.Manager +","+ CustomRoles.Publisher)]
[HttpGet("GetPartnerJounalsByIdAsync/")]
[ProducesResponseType(200, Type = typeof(JounalsPartnerGetResponse))]
[ProducesResponseType(204)]
[ProducesResponseType(400)]
public async Task<ActionResult> GetPartnerJournalsByIdAsync([Required]int weekId)
{
//get from db
}
Я хочу заполнить роли из базы данных, а не жестко кодировать их в классе, поэтому я могу добиться этого:
[Authorize (Roles = //Roles from the database)]
Вот решение, которое я создал, но я застрял.Я реализовал класс ролей:
public class Role
{
/////<Summary>Manager role</Summary>
public string RoleName { get; set; }
}
и метод для получения ролей из базы данных:
/// <summary>
/// Get All Roles
/// </summary>
/// <returns></returns>
public async Task<List<Role>> GetRoles()
{
GetResponse response = new GetResponse();
List<Role> CRoles = new List<CustomRoles>();
response = await database.ObjectGetTypedListAsync<Role>("", "Role");
CRoles = (List<Role>)response.StronglyTypedObject;
return CRoles;
}
Есть идеи, как мне этого добиться?