HttpGet: выдает 401-Unauthorize, если я передаю строку / параметр запроса - PullRequest
0 голосов
/ 06 мая 2020

Я создал проект. Net Core 3.0 WebApi и создал UsersController и один метод HttpGet для возврата некоторых данных. Когда я изменяю строку маршрута, чтобы принять строку запроса или значение параметра, этот метод не может быть введен, даже если применяется атрибут AllowAnonymous.

My Controller, [Authorize] [Route ("[controller]")] publi c class UsersController: BaseApiController {... другие методы HTTP ....

    [AllowAnonymous]
    [HttpGet("getresources/{LanguageCode}")]
    public async Task<IActionResult> GetResources([FromQuery]string LanguageCode)
    {
       ...logic...
       //string Json = "Json data based on the Language Code"; 
       return Ok(Json)
    } 
}

Но если я удалю строку «/ {LanguageCode}» из заголовка HttpGet, как показано ниже, она будет работать нормально. Так в чем же проблема с атрибутом авторизации? Почему атрибут авторизации строки не позволяет использовать строку "/ {LanguageCode}"? Или где я go ошибся?

Идеально работает Если,

[AllowAnonymous]
[HttpGet("getresources")]
public async Task<IActionResult> GetResources([FromQuery]string LanguageCode)
{
       ...logic...
       //string Json = "Json data based on the Language Code"; 
       return Ok(Json)
} 

Мой URL HttpGet, который работает,

https://localhost:5001/users/getresources?languagecode=en
...