我在OAuth中间件之前有一些中间件,之后有一些中间件。
app.Use<Middleware1>
app.Use<Middleware2>
app.UseOAuthBearerTokens(OAuthOptions)
app.Use<Middleware3>
app.Use<Middleware4>
app.Use<Middleware5>
如果我在Middleware1或Middleware2中的CallContext中设置了某些内容,则它在Middleware3或4或任何API控制器中都不可用;然而,如果我在Middleware3或4中的CallContext中设置了某些内容,那么它在所有后续中间件和API控制器中都可用。
我猜UseOAuthBearerTokens正在重置或创建一个新的CallContext?有没有遇到过这个?
我可以通过采取以下方法之一来摆脱它: 1.使用OwinContext而不是CallContext。缺点 - 需要在需要在上下文中设置的值的所有项目中引用OWIN。 2.在Middleware1中,我可以在OwinContext中设置值,在OAuth中间件之后的中间件中,我可以从OwinContext中检索值并在CallContext中重置它
让我知道一个适当的解决方案。