2017-08-15 33 views
0

所以我有一个ASP.NET Identity WebApi与IdentityServer4进行安全保护。这工作完美。但是,我试图让某些控制器在没有不记名令牌的情况下被访问。AllowAnonymous属性被IdentityServer身份验证覆盖.Net核心

在过去,我只是将[AllowAnonymous]添加到控制器或端点,但似乎IdentityServer的身份验证优先。

我不断收到: “IdentityServer4.AccessTokenValidation.Infrastructure.NopAuthenticationMiddleware:信息:承载未通过身份验证失败消息:没有找到令牌。”

我也想补充一点,在收到错误API的日志记录,而不是身份服务器的日志记录

最初我以为它可能与此有关:https://github.com/Microsoft/aspnet-api-versioning/issues/143。但是,即使我降级到ASP.Net Core 1.0.3,它仍然会发生。

任何人都知道我可以解决这个问题吗?

+0

你使用什么网络服务器?我问,因为我使用Kestrel作为主要Web服务器,并在前面安装了Apache Load Balancer。我必须确保Apache服务器在不进行身份验证的情况下允许这些路径,否则[AllowAnonymous]标记无效。 –

+0

感谢您对Apache的回应和提示。在这个阶段,我只是在本地开发,我相信是Kestrel。 – Jacques

回答

0

这不是一个真正的错误消息 - 它只是说没有令牌可以被发现 - 这是完全没问题的。

该请求将匿名流向您的控制器。

+0

谢谢。我的问题是路由。信息消息“失败消息...”非常具有误导性。希望这会得到重新表述,说明它仅用于信息目的。 – Jacques