Skip to content

Make NSUrlSessionHandler handle redirects like the .NET handlers do#25529

Merged
dalexsoto merged 1 commit into
mainfrom
dev/alex/redirect
May 27, 2026
Merged

Make NSUrlSessionHandler handle redirects like the .NET handlers do#25529
dalexsoto merged 1 commit into
mainfrom
dev/alex/redirect

Conversation

@dalexsoto
Copy link
Copy Markdown
Member

This change updates NSUrlSessionHandler redirect auth handling so it matches the .NET handlers more closely, this is just for .NET compatibility and for correctness; there's no security enforcement here. After an automatic redirect credentials are now resolved against the current redirect target Url instead of the orginal request Url. Also, non CredentialCache credentials are not reused across redirects by default, which is consistent with SocketsHttpHandler and WinHttpHandler. This avoids sending credentials that were scoped, or only meant for the original origin, to a redirected destination. CredentialCache entries still work when they are explicitly scoped for the redirect target.

This change updates NSUrlSessionHandler redirect auth handling so it
matches the .NET handlers more closely, this is just for .NET
compatibility and for correctness; there's no security enforcement here.
After an automatic redirect credentials are now resolved against the
current redirect target Url instead of the orginal request Url. Also,
non CredentialCache credentials are not reused across redirects by default,
which is consistent with `SocketsHttpHandler` and `WinHttpHandler`.
This avoids sending credentials that were scoped, or only meant for the
original origin, to a redirected destination. CredentialCache entries
still work when they are explicitly scoped for the redirect target.
@dalexsoto dalexsoto requested review from Copilot and rolfbjarne and removed request for Copilot May 26, 2026 19:27
@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #76d930e] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 76d930e46e7021b3ef7f7b3ee169e410f4c6e8c8 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #76d930e] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 76d930e46e7021b3ef7f7b3ee169e410f4c6e8c8 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 76d930e46e7021b3ef7f7b3ee169e410f4c6e8c8 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #76d930e] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 76d930e46e7021b3ef7f7b3ee169e410f4c6e8c8 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

🚀 [CI Build #76d930e] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 193 tests passed 🎉

Tests counts

✅ cecil: All 1 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 11 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 11 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 20 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 23 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 23 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 20 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 76d930e46e7021b3ef7f7b3ee169e410f4c6e8c8 [PR build]

@dalexsoto dalexsoto enabled auto-merge (squash) May 26, 2026 23:38
@rolfbjarne rolfbjarne added the notes-mention Deserves a mention in release notes label May 27, 2026
@dalexsoto dalexsoto merged commit 9dc9c38 into main May 27, 2026
56 of 57 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

notes-mention Deserves a mention in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants