dotnet / dotnet/runtime

Consider keying the HTTP connection pool based on the supplied credential

Open
#132,267 1 comment 0 reactions 0 assignees View on GitHub
area-System.Net.Http enhancement
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

Currently, the connection pool is keyed off of the type of connection / host / port / SNI / Proxy URL.
Credentials are resolved after the fact (once we already have a connection), so they don't impact how we partition connections.
With NTLM, this can have unintended consequences, so we should look at how feasible it is to make this work.

We made a previous change to special-case the `CredentialCache.DefaultCredentials` in #303 to include the identity as part of the partitioning key, but this doesn't work for any sort of custom credential type.

Contributor guide

Open the contributing guide

Research direction

Start by reading the connection-pool partitioning behavior described here and the prior change in #303, including how CredentialCache.DefaultCredentials is handled. Investigate how custom credentials and NTLM affect connection reuse, then define a feasible credential-based partitioning approach and tests that demonstrate correct separation.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.