HttpContext.Current.Items被踩了?数据作用于请求中

时间:2012-06-15 15:44:36

标签: c# rest iis-7 httpcontext wcf-web-api

我正在开发使用 WCF WebApi Preview 6 构建的 REST API 。这适用于多租户应用程序,并由不同的客户端(Web和移动应用程序)使用。

此API上有某些资源需要身份验证才能访问或使用它们。客户端使用加密令牌提供这些端点的API信息,该加密令牌包含有关设备,用户,租户等的加密信息。

我创建了一个压力测试,实际上揭示了租户之间的数据泄漏。 我将解释一个具体的例子和工作流程,所以你有一个更好的主意。

客户端设备中的用户使用API​​进行身份验证并获取令牌。稍后,设备将资源POST到需要安全令牌运行的端点。 令牌验证在 MessageHandler 中进行,确保一切正常,然后将暂时信息放在 HttpCurrent.Items 中,以便其他请求可用。

我们使用 HttpContext.Current.Items ,因为我们确定它的范围是请求,所以稍后在处理请求时我可以引用正确的租户和在那里插入信息。

我们不确定发生了什么,但根据HttpContext.Current.Items中的信息将一些数据路由到错误的租户。

这怎么可能发生?

HttpContext.Current.Items中的信息是否在请求完成之前踩到了? 处理数据的过程实际上之外请求吗?

0 个答案:

没有答案