0

Я обновляю знания веб-API, читая ASP.NET Web API в сжатом виде. Она имеет простой пример использования почтальона, чтобы получить некоторые из предопределенных данных для приложения, введя в Почтальон с помощью Get глаголом:Почему я получаю ошибку 401 при попытке получить доступ к простому ванильному (немодифицированному) веб-API-приложению от Postman?

http://localhost:52194/api/values 

Веб-API работает, и показывает «http://localhost:52194/» в моем (Chrome).

Отправка вышеуказанного Получаемый URL-адрес от Postman, тем не менее, приводит к «401 несанкционированному» в Postman.

Теоретически я должен увидеть:

[ 
    "value1", 
    "value2" 
] 

... из-за существующего в приложении этого кода:

namespace PlatypusWebReports.Controllers 
{ 
    [Authorize] 
    public class ValuesController : ApiController 
    { 
     // GET api/values 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 
     . . . 

Почему я получаю «401» и как я могу предотвратить его ?

ответ

2

У вас есть эта ошибка, потому что вы отметили свой класс контроллера атрибутом Authorize. Просто удалите этот атрибут, если вам действительно не требуется авторизация для этого API.

+0

Ах, поэтому схема авторизации по умолчанию шаблона изменилась (до более строгой), так как была написана книга Succinctly. Книга не показывает эту директиву, но файл имел ее, прежде чем я ее прокомментировал, и теперь она действительно работает нормально. –