OWIN中间件和CallContext中

时间:2016-08-25 14:29:06

标签: asp.net-web-api owin

我在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中重置它

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

0 个答案:

没有答案