app.UseAuthentication 和 app.UseAuthorization 有什么区别?

Sta*_*eal 7 asp.net-core

我正在尝试编写一个在身份验证和授权之间执行的中间件。

我已经在这两个 authXYZ 之间注册了该中间件:

app.UseAuthentication();
app.UseCustomMiddlerware();
app.UseAuthorization();
Run Code Online (Sandbox Code Playgroud)

但是我无法在我的CustomMiddlerware.

当我删除该app.UseAuthentication()语句时,我发现该语句AuthenticationHandler仍在运行,并且经过身份验证的用户仅在app.UseAuthorization().

所以,这里是我的问题:

  1. 我可以只使用app.UseAuthorization()而不是同时使用app.UseAuthentication()app.UseAuthorization()吗?
    1.1 有什么区别?
  2. 认证和授权是一起触发的吗?
    2.1 有没有办法在它们之间插入一个中间件?

Kav*_*eri 4

身份验证和授权是两个不同的事情,但它们也是齐头并进的。将身份验证视为允许某人进入您的家,将授权视为允许您的客人\xe2\x80\x99 进入后执行特定的操作(例如在室内穿鞋、吃你的食物等)。换句话说,身份验证允许您的 Web 应用程序\xe2\x80\x99s 用户识别自己的身份以访问您的应用程序,授权允许他们访问特定的特性和功能。

\n

您可以在这里找到更多信息

\n