如何从ASP.NET Core 2.1 API获取401未经授权的详细信息

时间:2018-07-24 14:18:56

标签: c# authentication asp.net-core asp.net-core-2.1

我正在使用ASP.NET API(内置于Core 2.1中),当尝试从测试应用程序调用它时,我得到了401 Unauthorized。但是,据我所知,访问令牌很好。有没有办法从ASP.NET Core 2.1中的身份验证处理程序中获取有关无效内容的更多详细信息?如果我能对令牌有什么问题有所了解,我应该能够找到一种解决方案来纠正它,但是现在我在黑暗中绊倒,只是尝试各种事情(很可能是我在做它。更糟)。

2 个答案:

答案 0 :(得分:3)

检查日志或服务器的事件查看器。

对于您的错误,请检查您是否在app.UseAuthentication()之前将Configure()作为UseMVC()中的第一种方法。

如果您提到了错误的子代码,这将有所帮助:

401.1: Access is denied due to invalid credentials.
401.2: Access is denied due to server configuration favoring an alternate authentication method.
401.3: Access is denied due to an ACL set on the requested resource.
401.4: Authorization failed by a filter installed on the Web server.
401.5: Authorization failed by an ISAPI/CGI application.
401.7: Access denied by URL authorization policy on the Web server.

答案 1 :(得分:-1)

您应该查看服务器日志。我可能是您在请求中传递令牌的方式。示例可能是什么:

  

我在做:

GET https://localhost:44357/api/test 
Headers:   
    Bearer: {ACCESS_TOKEN_VALUE}   
    Content-Type: application/json 
     

当我应该做的时候:

GET https://localhost:44357/api/test 
Headers:   
    Authorization: Bearer {ACCESS_TOKEN_VALUE}
    Content-Type: application/json
     

https://github.com/openiddict/openiddict-core/issues/577