挑战在 Asp .Net Core 3 中到底意味着什么?

Ale*_*ecu 10 .net-core asp.net-core

我知道你可以在asp .net core中进行身份验证和授权。例如,您可以使用授权属性拒绝对某些资源的访问。

例如,如果用户尝试访问无法访问的资源,那么他可能会被重定向到登录页面。

但是我看到asp .net core中有一个叫做Challenge的概念。我不知道它在这一切中适合什么。据我了解,如果用户未登录,它可以将他重定向到可以登录的页面。

Kir*_*kin 15

官方文档对此进行了介绍:

当未经身份验证的用户请求需要身份验证的端点时,授权将调用身份验证质询。例如,当匿名用户请求受限资源或点击登录链接时,就会发出身份验证质询。授权使用指定的身份验证方案调用质询,如果未指定,则使用默认方案。请参阅ChallengeAsync。身份验证质询示例包括:

  • 将用户重定向到登录页面的 cookie 身份验证方案。
  • JWT 承载方案返回带有标头的 401 结果www-authenticate: bearer

质询操作应该让用户知道使用什么身份验证机制来访问所请求的资源。