diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml
index c085e925a528..08eab9052b12 100644
--- a/.azure/pipelines/ci.yml
+++ b/.azure/pipelines/ci.yml
@@ -97,14 +97,14 @@ variables:
- name: WindowsArm64InstallersLogArgs
value: /bl:artifacts/log/Release/Build.Installers.Arm64.binlog
- name: _InternalRuntimeDownloadArgs
- value: -RuntimeSourceFeed https://dotnetbuilds.blob.core.windows.net/internal
+ value: -RuntimeSourceFeed https://ci.dot.net/internal
-RuntimeSourceFeedKey $(dotnetbuilds-internal-container-read-token-base64)
/p:DotNetAssetRootAccessTokenSuffix='$(dotnetbuilds-internal-container-read-token-base64)'
# The code signing doesn't use the aspnet build scripts, so the msbuild parameters have to be passed directly. This
# is awkward but necessary because the eng/common/ build scripts don't add the msbuild properties automatically.
- name: _InternalRuntimeDownloadCodeSignArgs
value: $(_InternalRuntimeDownloadArgs)
- /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
+ /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
- group: DotNet-HelixApi-Access
- ${{ if notin(variables['Build.Reason'], 'PullRequest') }}:
diff --git a/NuGet.config b/NuGet.config
index 66f5d2f4634d..f8b0b0f8f7db 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -4,8 +4,10 @@
+
+
@@ -28,8 +30,10 @@
+
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index acf8364911b3..989cca9ca192 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -9,325 +9,325 @@
-->
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 7bb42e8dd6df45b8570b7cb7ccdcfd5fb6460b0e
+ 68c7e19496df80819410fc6de1682a194aad33d3
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
https://github.com/dotnet/xdt
@@ -367,9 +367,9 @@
bc1c3011064a493b0ca527df6fb7215e2e5cfa96
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
@@ -380,9 +380,9 @@
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 80aa709f5d919c6814726788dc6dabe23e79e672
+ 831d23e56149cd59c40fc00c7feb7c5334bd19c4
https://github.com/dotnet/winforms
diff --git a/eng/Versions.props b/eng/Versions.props
index de9306c59d2f..7d377eb03252 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -68,92 +68,92 @@
-->
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2-servicing.25066.10
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2-servicing.25066.10
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2-servicing.25066.10
- 9.0.2-servicing.25066.10
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3-servicing.25111.13
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3-servicing.25111.13
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3-servicing.25111.13
+ 9.0.3-servicing.25111.13
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
- 9.0.2-servicing.25066.10
- 9.0.2
+ 9.0.3-servicing.25111.13
+ 9.0.3
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
9.3.0-preview.1.25156.1
9.3.0-preview.1.25156.1
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
- 9.0.2
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
+ 9.0.3
4.11.0-3.24554.2
4.11.0-3.24554.2
diff --git a/eng/helix/helix.proj b/eng/helix/helix.proj
index f31e201d516e..a772993a3592 100644
--- a/eng/helix/helix.proj
+++ b/eng/helix/helix.proj
@@ -58,12 +58,12 @@
runtime
-
$([System.Environment]::GetEnvironmentVariable('DotNetBuildsInternalReadSasToken'))
-
$([System.Environment]::GetEnvironmentVariable('DotNetBuildsInternalReadSasToken'))
diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
index 512c53439ccc..5f488e03a398 100644
--- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
+++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
@@ -560,9 +560,9 @@ This package is an internal implementation of the .NET Core SDK and is not meant
-
-
-
+
+
$(DotnetRuntimeSourceFeedKey)
diff --git a/src/Identity/Core/src/SignInManager.cs b/src/Identity/Core/src/SignInManager.cs
index b5659b329854..66f06c4d3465 100644
--- a/src/Identity/Core/src/SignInManager.cs
+++ b/src/Identity/Core/src/SignInManager.cs
@@ -162,8 +162,21 @@ public virtual async Task CanSignInAsync(TUser user)
public virtual async Task RefreshSignInAsync(TUser user)
{
var auth = await Context.AuthenticateAsync(AuthenticationScheme);
- IList claims = Array.Empty();
+ if (!auth.Succeeded || auth.Principal?.Identity?.IsAuthenticated != true)
+ {
+ Logger.LogError("RefreshSignInAsync prevented because the user is not currently authenticated. Use SignInAsync instead for initial sign in.");
+ return;
+ }
+ var authenticatedUserId = UserManager.GetUserId(auth.Principal);
+ var newUserId = await UserManager.GetUserIdAsync(user);
+ if (authenticatedUserId == null || authenticatedUserId != newUserId)
+ {
+ Logger.LogError("RefreshSignInAsync prevented because currently authenticated user has a different UserId. Use SignInAsync instead to change users.");
+ return;
+ }
+
+ IList claims = Array.Empty();
var authenticationMethod = auth?.Principal?.FindFirst(ClaimTypes.AuthenticationMethod);
var amr = auth?.Principal?.FindFirst("amr");
diff --git a/src/Identity/test/Identity.Test/SignInManagerTest.cs b/src/Identity/test/Identity.Test/SignInManagerTest.cs
index d1072676138a..73fe6d6be218 100644
--- a/src/Identity/test/Identity.Test/SignInManagerTest.cs
+++ b/src/Identity/test/Identity.Test/SignInManagerTest.cs
@@ -592,38 +592,38 @@ public async Task CanExternalSignIn(bool isPersistent, bool supportsLockout)
[InlineData(true, false)]
[InlineData(false, true)]
[InlineData(false, false)]
- public async Task CanResignIn(
- // Suppress warning that says theory methods should use all of their parameters.
- // See comments below about why this isn't used.
-#pragma warning disable xUnit1026
- bool isPersistent,
-#pragma warning restore xUnit1026
- bool externalLogin)
+ public async Task CanResignIn(bool isPersistent, bool externalLogin)
{
// Setup
var user = new PocoUser { UserName = "Foo" };
var context = new DefaultHttpContext();
var auth = MockAuth(context);
var loginProvider = "loginprovider";
- var id = new ClaimsIdentity();
+ var id = new ClaimsIdentity("authscheme");
if (externalLogin)
{
id.AddClaim(new Claim(ClaimTypes.AuthenticationMethod, loginProvider));
}
- // REVIEW: auth changes we lost the ability to mock is persistent
- //var properties = new AuthenticationProperties { IsPersistent = isPersistent };
- var authResult = AuthenticateResult.NoResult();
+
+ var claimsPrincipal = new ClaimsPrincipal(id);
+ var properties = new AuthenticationProperties { IsPersistent = isPersistent };
+ var authResult = AuthenticateResult.Success(new AuthenticationTicket(claimsPrincipal, properties, "authscheme"));
auth.Setup(a => a.AuthenticateAsync(context, IdentityConstants.ApplicationScheme))
.Returns(Task.FromResult(authResult)).Verifiable();
var manager = SetupUserManager(user);
+ manager.Setup(m => m.GetUserId(claimsPrincipal)).Returns(user.Id.ToString());
var signInManager = new Mock>(manager.Object,
new HttpContextAccessor { HttpContext = context },
new Mock>().Object,
null, null, new Mock().Object, null)
{ CallBase = true };
- //signInManager.Setup(s => s.SignInAsync(user, It.Is(p => p.IsPersistent == isPersistent),
- //externalLogin? loginProvider : null)).Returns(Task.FromResult(0)).Verifiable();
- signInManager.Setup(s => s.SignInWithClaimsAsync(user, It.IsAny(), It.IsAny>())).Returns(Task.FromResult(0)).Verifiable();
+
+ signInManager.Setup(s => s.SignInWithClaimsAsync(user,
+ It.Is(properties => properties.IsPersistent == isPersistent),
+ It.Is>(claims => !externalLogin ||
+ claims.Any(claim => claim.Type == ClaimTypes.AuthenticationMethod && claim.Value == loginProvider))))
+ .Returns(Task.FromResult(0)).Verifiable();
+
signInManager.Object.Context = context;
// Act
@@ -634,6 +634,58 @@ public async Task CanResignIn(
signInManager.Verify();
}
+ [Fact]
+ public async Task ResignInNoOpsAndLogsErrorIfNotAuthenticated()
+ {
+ var user = new PocoUser { UserName = "Foo" };
+ var context = new DefaultHttpContext();
+ var auth = MockAuth(context);
+ var manager = SetupUserManager(user);
+ var logger = new TestLogger>();
+ var signInManager = new Mock>(manager.Object,
+ new HttpContextAccessor { HttpContext = context },
+ new Mock>().Object,
+ null, logger, new Mock().Object, null)
+ { CallBase = true };
+ auth.Setup(a => a.AuthenticateAsync(context, IdentityConstants.ApplicationScheme))
+ .Returns(Task.FromResult(AuthenticateResult.NoResult())).Verifiable();
+
+ await signInManager.Object.RefreshSignInAsync(user);
+
+ Assert.Contains("RefreshSignInAsync prevented because the user is not currently authenticated. Use SignInAsync instead for initial sign in.", logger.LogMessages);
+ auth.Verify();
+ signInManager.Verify(s => s.SignInWithClaimsAsync(It.IsAny(), It.IsAny(), It.IsAny>()),
+ Times.Never());
+ }
+
+ [Fact]
+ public async Task ResignInNoOpsAndLogsErrorIfAuthenticatedWithDifferentUser()
+ {
+ var user = new PocoUser { UserName = "Foo" };
+ var context = new DefaultHttpContext();
+ var auth = MockAuth(context);
+ var manager = SetupUserManager(user);
+ var logger = new TestLogger>();
+ var signInManager = new Mock>(manager.Object,
+ new HttpContextAccessor { HttpContext = context },
+ new Mock>().Object,
+ null, logger, new Mock().Object, null)
+ { CallBase = true };
+ var id = new ClaimsIdentity("authscheme");
+ var claimsPrincipal = new ClaimsPrincipal(id);
+ var authResult = AuthenticateResult.Success(new AuthenticationTicket(claimsPrincipal, new AuthenticationProperties(), "authscheme"));
+ auth.Setup(a => a.AuthenticateAsync(context, IdentityConstants.ApplicationScheme))
+ .Returns(Task.FromResult(authResult)).Verifiable();
+ manager.Setup(m => m.GetUserId(claimsPrincipal)).Returns("different");
+
+ await signInManager.Object.RefreshSignInAsync(user);
+
+ Assert.Contains("RefreshSignInAsync prevented because currently authenticated user has a different UserId. Use SignInAsync instead to change users.", logger.LogMessages);
+ auth.Verify();
+ signInManager.Verify(s => s.SignInWithClaimsAsync(It.IsAny(), It.IsAny(), It.IsAny>()),
+ Times.Never());
+ }
+
[Theory]
[InlineData(true, true, true, true)]
[InlineData(true, true, false, true)]
diff --git a/src/Installers/Windows/WindowsHostingBundle/Product.targets b/src/Installers/Windows/WindowsHostingBundle/Product.targets
index 3b1cf82c1076..c1dc097445d4 100644
--- a/src/Installers/Windows/WindowsHostingBundle/Product.targets
+++ b/src/Installers/Windows/WindowsHostingBundle/Product.targets
@@ -83,9 +83,9 @@
-->
-
-
-
+
+
$(DotnetRuntimeSourceFeedKey)