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

Mar*_*und 6 c# asp.net-web-api owin owin-middleware

我读了一些例子(1,2,3,4)是如何使用Web API和示例声明认证中间件作为配置方法的第一个中间件,但不知道为什么它需要的时候在owin管道设置身份验证第一.

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

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

Stf*_*Bln 5

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

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

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