# IConnectionMiddleware

Package: [Microsoft.Orleans.Core](/orleans/docs/api/csharp/microsoft.orleans.core/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Core)

```csharp
public interface IConnectionMiddleware
```

Interface for connection middleware. 

Implementers provide [IConnectionMiddleware](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.runtime.messaging.iconnectionmiddleware/) and invoke the supplied `Microsoft.AspNetCore.Connections.ConnectionDelegate` to continue the pipeline.

Middleware instances can be invoked concurrently for multiple connections. Per-connection state should be stored in local variables or on the `Microsoft.AspNetCore.Connections.ConnectionContext`.

Register via `builder.UseMiddleware()` or manually with `builder.Use(next => ctx => middleware.OnConnectionAsync(ctx, next))`.

## Methods

- [OnConnectionAsync(ConnectionContext, ConnectionDelegate)](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.runtime.messaging.iconnectionmiddleware/methods/onconnectionasync-microsoft-aspnetcore-connections-connectioncontext-microsoft-a-7a63b682/)
