diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/ConnectionInfo.cs b/src/Microsoft.AspNetCore.Http.Abstractions/ConnectionInfo.cs
index 08c4108609..d4cab49afe 100644
--- a/src/Microsoft.AspNetCore.Http.Abstractions/ConnectionInfo.cs
+++ b/src/Microsoft.AspNetCore.Http.Abstractions/ConnectionInfo.cs
@@ -10,6 +10,11 @@ namespace Microsoft.AspNetCore.Http
{
public abstract class ConnectionInfo
{
+ ///
+ /// Gets or sets a unique identifier to represent this connection.
+ ///
+ public abstract string Id { get; set; }
+
public abstract IPAddress RemoteIpAddress { get; set; }
public abstract int RemotePort { get; set; }
@@ -22,4 +27,4 @@ namespace Microsoft.AspNetCore.Http
public abstract Task GetClientCertificateAsync(CancellationToken cancellationToken = new CancellationToken());
}
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.AspNetCore.Http/Internal/DefaultConnectionInfo.cs b/src/Microsoft.AspNetCore.Http/Internal/DefaultConnectionInfo.cs
index 496df69654..6ae7f9fc38 100644
--- a/src/Microsoft.AspNetCore.Http/Internal/DefaultConnectionInfo.cs
+++ b/src/Microsoft.AspNetCore.Http/Internal/DefaultConnectionInfo.cs
@@ -39,6 +39,13 @@ namespace Microsoft.AspNetCore.Http.Internal
private ITlsConnectionFeature TlsConnectionFeature=>
_features.Fetch(ref _features.Cache.TlsConnection, _newTlsConnectionFeature);
+ ///
+ public override string Id
+ {
+ get { return HttpConnectionFeature.ConnectionId; }
+ set { HttpConnectionFeature.ConnectionId = value; }
+ }
+
public override IPAddress RemoteIpAddress
{
get { return HttpConnectionFeature.RemoteIpAddress; }
@@ -80,4 +87,4 @@ namespace Microsoft.AspNetCore.Http.Internal
public ITlsConnectionFeature TlsConnection;
}
}
-}
\ No newline at end of file
+}