为什么auth中间件声明的顺序在Owin Startup类中很重要?

我读了一些关于在使用web api时在owin管道中设置身份validation的示例( 1,2,3,4) ,并且示例将身份validation中间件声明为Configuration方法中的第一个中间件,但没有告诉它为什么需要第一。

在这个问题中,作者在认证中间件之前附加了webapi中间件,然后认证无法正常工作。 当auther将它移动到方法的顶部时,一切都按预期工作。

有谁知道为什么需要将身份validation中间件添加为启动配置方法中的第一个中间件?

OWIN是一个责任链。 第一个中间件将首先被触发,第二个中间件将被触发,依此类推。

在开头使用身份validation中间件允许您获取管道其余部分的用户信息。

如果要将其添加到管道的中间或末尾,则在调用此中间件之前无法访问用户信息。