为什么我在尝试从 Postman 访问 运行 普通(未修改)Web API 应用程序时收到 401 错误?

Why am I getting a 401 error when trying to access a running plain vanilla (unmodified) Web API app from Postman?

我正在通过简洁地阅读 ASP.NET Web API 来刷新我的 Web API 知识。它有一个使用 Postman 获取应用程序预定义数据的简单示例,使用 Get 动词将以下内容输入 Postman:

http://localhost:52194/api/values

Web API 是 运行,并在我的 (Chrome) 浏览器中显示“http://localhost:52194/”。

不过,从 Postman 发送上述 Get verbed URL 会导致 Postman 出现“401 Unauthorized”。

理论上,我应该看到:

[
    "value1",
    "value2"
]

...因为应用程序中存在此代码:

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

为什么我会收到“401”,我该如何预防?

您出现此错误是因为您使用 Authorize 属性标记了您的控制器 class。如果您真的不需要此 API.

的授权,只需删除此属性