中间件中的HttpContext .NET核心保存实例

将HttpContext实例存储在中间件中是否安全?

例:

public class TestMiddleware { private readonly RequestDelegate next; private HttpContext context; public TestMiddleware(RequestDelegate next) { this.next = next; } public async Task Invoke(HttpContext context) { try { this.context = context; 

我想在其他私有方法中使用它来处理它,所以我可以将它作为参数传递给那些函数或使用它,如示例中所示。

但它是否安全?

但它是否安全?

不,不是,因为中间件必然是单身人士。 如果您在共享字段中存储特定的HttpContext ,它将在另一个请求期间被重用(这将是非常糟糕的)。