Я разрабатываю некоторый проект Web-API с ASP.Net Core 2 с использованием некоторого пользовательского промежуточного программного обеспечения, которое переводит информацию об авторизации, полученную от стороннего сервиса, в новую идентификационную информацию о заявках и добавляет ее в пользовательский субъект утверждений в контексте http. , Я также реализовал некоторый пользовательский поставщик политик авторизации, который проверяет добавленную идентификационную информацию заявки на наличие необходимых разрешений и ролей.
Теперь я хочу выполнить два действия, как показано ниже, на одном контроллере с одинаковым маршрутом:
[Route("api/[controller]")]
public class StatesController : Controller
{
[Authorize("PaiedUser")]
[HttpGet(Name = "GetStates")]
public IActionResult GetStatesPaied(StateHttpRequestParameter requestResourceParameter)
{ //some code here to handle the paied user request}
[Authorize("FreeUser")]
[HttpGet(Name = "GetStates")]
public IActionResult GetStatesFree(StateHttpRequestParameter requestResourceParameter)
{ //some code here to handle the free user request}
}
Во время выполнения я получил это исключение,
Microsoft.AspNetCore.Mvc.Internal.AmbiguousActionException: найдено несколько действий. Следующие действия соответствовали данным маршрута и были выполнены все ограничения:
SaMonitoring.API.Controllers.StatesController.GetStatesFree (SaMonitoring.API)
SaMonitoring.API.Controllers.StatesController.GetStatesPaied (SaMonitoring.API) * +1010 *
Как мне добиться этого поведения?