Asp.net web api OWIN中间件&;调用上下文

Asp.net web api OWIN中间件&;调用上下文,asp.net-web-api,owin,Asp.net Web Api,Owin,在OAuth中间件之前和之后,我有一些中间件 app.Use<Middleware1> app.Use<Middleware2> app.UseOAuthBearerTokens(OAuthOptions) app.Use<Middleware3> app.Use<Middleware4> app.Use<Middleware5> app.Use 应用程序。使用 应用程序使用OAuthBealerTokens(OAuthOptions

在OAuth中间件之前和之后,我有一些中间件

app.Use<Middleware1>
app.Use<Middleware2>
app.UseOAuthBearerTokens(OAuthOptions)
app.Use<Middleware3>
app.Use<Middleware4>
app.Use<Middleware5>
app.Use
应用程序。使用
应用程序使用OAuthBealerTokens(OAuthOptions)
应用程序。使用
应用程序。使用
应用程序。使用
如果我在Middleware1或Middleware2的CallContext中设置了一些内容,那么它在Middleware3或4或任何API控制器中都不可用;然而,如果我在Middleware3或4中的CallContext中设置了一些内容,那么它在所有后续的中间件和API控制器中都是可用的

我猜UseAuthBealerTokens正在重置或创建新的CallContext??有人遇到过这种情况吗

我可以通过以下方法之一摆脱它: 1.使用OwinContext而不是CallContext。缺点-需要在需要在上下文中设置值的所有项目中引用OWIN。 2.在Middleware1中,我可以在OwinContext中设置值,在遵循OAuth中间件的中间件中,我可以从OwinContext中检索值并在CallContext中重置它

让我知道一个合适的解决方案