[6.1] Port PR #3929: Avoid unintended SPN generation for non-integrated auth on native SNI path#3942
Closed
[6.1] Port PR #3929: Avoid unintended SPN generation for non-integrated auth on native SNI path#3942
Conversation
…h on native SNI path Apply the NormalizeServerSpn fix to netcore TdsParserStateObjectNative.cs for the release/6.1 branch file structure. Original PR: #3929 Co-authored-by: apoorvdeshmukh <apdeshmukh@microsoft.com> Co-authored-by: apoorvdeshmukh <5858671+apoorvdeshmukh@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Port changes from PR dotnet/SqlClient#3929 to release/6.1
[6.1] Port PR #3929: Avoid unintended SPN generation for non-integrated auth on native SNI path
Feb 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Backport of #3929 to
release/6.1. Fixes a connection performance regression where SPN generation was triggered for non-integrated auth (e.g., SQL auth) on the native SNI path, causing unnecessary DNS lookups and ~5s connection delays.On
release/6.1, the netcoreTdsParserStateObjectNative.cshad the same vulnerable pattern asmainpre-fix: emptyserverSPNpassed through to native SNI without normalization whenisIntegratedSecurity=false.Changes to
netcore/src/.../TdsParserStateObjectNative.cs:NormalizeServerSpn(string serverSPN, bool isIntegratedSecurity)— identical to themainimplementationstring.Empty(triggers SPN generation)nullfor empty SPN (suppresses generation), preserves explicit SPNresolvedSpnassignment behind!string.IsNullOrWhiteSpacecheckThe netfx path was not affected —
release/6.1netfx handles SPN normalization inTdsParser.cswhere non-integrated auth already sets SPN tonull.Issues
Backport of #3929 (commit
104a4017).Testing
Unit test
TdsParserStateObjectNativeTests.NormalizeServerSpn_ReturnsExpectedValuealready exists on the branch (ported frommainwith #3929). Covers all combinations of null/empty/whitespace/provided SPN × integrated/SQL auth.No environment-dependent E2E validation performed — the regression requires a specific network topology (client → router → Wi-Fi extender → SQL Server) that is out of scope per the backport instructions.
Guidelines
Please review the contribution guidelines before submitting a pull request:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.