Я хочу передать аргумент (определенную роль из принципала) в ActionFilterAttribute.Принципалы / роли хранятся в другом проекте в статическом классе.Я хочу взаимодействовать с другим проектом только через интерфейс, чтобы он был «чистым».Кажется, проблема в следующем: мне нужна константа для ActionFilterAttribute.Каждый раз, когда я хочу передать роль через интерфейс «GetRegularUserRole», я получаю ссылку на объект нестатического поля.
Мое текущее решение - вызвать сам класс и роль.
Часть моегоКонтроллер
private IGeolocator _getLocation { get; }
private IPrincipals _principals { get; }
public GeoLocationController(IGeolocator getLocation, IPrincipals
principals)
{
_getLocation = getLocation;
_principals = principals;
}
[HttpPost]
[Route("GetGeoLocation")]
[RoleRestrictions(_principals.GetRegularRole())]
Класс Role
public static class Roles
{
public const string _Regular = "regular";
public const string _Master = "master";
}
Как бы я хотел вызвать их через интерфейс
public string GetMasterRole()
{
return Roles._Master;
}
public string GetRegularRole()
{
return Roles._Regular;
}
Мое текущее решение для установки ActionFilterAttribute
[RoleRestrictions(Roles._Regular)]
Я не удовлетворен этим решением, и я ищу другой способ ... лучше всего было бы с интерфейсом.