diff --git a/.azure/pipelines/ci-public.yml b/.azure/pipelines/ci-public.yml index 9bcb4699e93a..3d823e234dc6 100644 --- a/.azure/pipelines/ci-public.yml +++ b/.azure/pipelines/ci-public.yml @@ -446,7 +446,7 @@ stages: jobName: Linux_musl_x64_build jobDisplayName: "Build: Linux Musl x64" agentOs: Linux - container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode + container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-build-amd64 buildArgs: --arch x64 --os-name linux-musl @@ -480,7 +480,7 @@ stages: jobDisplayName: "Build: Linux Musl ARM" agentOs: Linux useHostedUbuntu: false - container: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine + container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-build-amd64 buildArgs: --arch arm --os-name linux-musl @@ -513,7 +513,7 @@ stages: jobDisplayName: "Build: Linux Musl ARM64" agentOs: Linux useHostedUbuntu: false - container: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine + container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-build-amd64 buildArgs: --arch arm64 --os-name linux-musl @@ -645,7 +645,7 @@ stages: parameters: platform: name: 'Managed' - container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-build-amd64' buildScript: './eng/build.sh --publish --no-build-repo-tasks $(_PublishArgs) $(_InternalRuntimeDownloadArgs)' skipPublishValidation: true jobProperties: diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index d9f2afd0e9b6..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') }}: @@ -149,12 +149,8 @@ extends: tsa: enabled: true containers: - alpine319WithNode: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode - mariner20CrossArmAlpine: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine - mariner20CrossArm64Alpine: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine + azureLinux30Net9BuildAmd64: + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-build-amd64 stages: - stage: build displayName: Build @@ -515,7 +511,7 @@ extends: jobName: Linux_musl_x64_build jobDisplayName: "Build: Linux Musl x64" agentOs: Linux - container: alpine319WithNode + container: azureLinux30Net9BuildAmd64 buildArgs: --arch x64 --os-name linux-musl @@ -549,7 +545,7 @@ extends: jobDisplayName: "Build: Linux Musl ARM" agentOs: Linux useHostedUbuntu: false - container: mariner20CrossArmAlpine + container: azureLinux30Net9BuildAmd64 buildArgs: --arch arm --os-name linux-musl @@ -582,7 +578,7 @@ extends: jobDisplayName: "Build: Linux Musl ARM64" agentOs: Linux useHostedUbuntu: false - container: mariner20CrossArm64Alpine + container: azureLinux30Net9BuildAmd64 buildArgs: --arch arm64 --os-name linux-musl diff --git a/NuGet.config b/NuGet.config index e1e647dd1771..f8b0b0f8f7db 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index dfd9247704ed..038221fceef4 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,117 +2,117 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 @@ -120,279 +120,279 @@ - 9.0.1 + 9.0.2 - - - + + + - - - + + + - - - + + + - 9.0.1 + 9.0.2 - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - - - - - + + + + + - 9.0.1 + 9.0.2 - - - - - + + + + + - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - - - - - + + + + + + - 9.0.1 + 9.0.2 - - - + + + - 9.0.1 + 9.0.2 - - - + + + - + - - - + + + - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - + - + - 9.0.1 + 9.0.2 - - - - - - + + + + + + - + - - - - - - - + + + + + + + - - - - - - + + + + + + - + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - - + + - - + + - - + + - 9.0.1 + 9.0.2 - + - + - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 @@ -401,83 +401,83 @@ - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - 9.0.1 + 9.0.2 - - + + - + - - + + - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 @@ -493,510 +493,510 @@ - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - + + - - + + - - + + - 9.0.1 + 9.0.2 - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - 9.0.1 + 9.0.2 - - + + - + - - + + - - - + + + - 9.0.1 + 9.0.2 - + - + - + - 9.0.1 + 9.0.2 - + - + - + - 9.0.1 + 9.0.2 - + - + - + - 9.0.1 + 9.0.2 - - - - + + + + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - + + - - + + - - + + - 9.0.1 + 9.0.2 - - - + + + - - - + + + - - - + + + - - - + + + - 9.0.1 + 9.0.2 - - + + - - + + - - + + - 9.0.1 + 9.0.2 - - - - - + + + + + - - - - + + + + - - - - - + + + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - + - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - - - + + + - - - + + + - - - + + + - 9.0.1 + 9.0.2 - - - + + + - - - + + + - - - + + + - 9.0.1 + 9.0.2 - - - - + + + + - - - - + + + + - - - - + + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - - - + + + - - + + - - - + + + - 9.0.1 + 9.0.2 - 9.0.1 + 9.0.2 - + - 9.0.1 + 9.0.2 - + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index b081a19bb966..d15a11b1f2fd 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,110 +4,110 @@ This file contains a list of all the packages and their versions which were rele Update this list when preparing for a new patch. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 206dc89ef3ad..ccae9cf9ba4d 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,47 +380,47 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80aa709f5d919c6814726788dc6dabe23e79e672 + 831d23e56149cd59c40fc00c7feb7c5334bd19c4 https://github.com/dotnet/winforms 9b822fd70005bf5632d12fe76811b97b3dd044e4 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/arcade - 8cc6ecd76c24ef6665579a5c5e386a211a1e7c54 + bac7e1caea791275b7c3ccb4cb75fd6a04a26618 - + https://github.com/dotnet/extensions - 309f2b7f73a28ffd75dac15434d160e5bd765384 + ca2fe808b3d6c55817467f46ca58657456b4a928 - + https://github.com/dotnet/extensions - 309f2b7f73a28ffd75dac15434d160e5bd765384 + ca2fe808b3d6c55817467f46ca58657456b4a928 https://github.com/nuget/nuget.client diff --git a/eng/Versions.props b/eng/Versions.props index 796893bce1e8..8f45c2dcc337 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,7 +8,7 @@ 9 0 - 2 + 3 true @@ -19,8 +19,8 @@ --> true release - rtm - RTM + servicing + Servicing true false $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) @@ -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.1.0-preview.1.25060.3 - 9.1.0-preview.1.25060.3 + 9.3.0-preview.1.25107.9 + 9.3.0-preview.1.25107.9 - 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 @@ -166,10 +166,10 @@ 6.2.4 6.2.4 - 9.0.0-beta.25058.5 - 9.0.0-beta.25058.5 - 9.0.0-beta.25058.5 - 9.0.0-beta.25058.5 + 9.0.0-beta.25077.4 + 9.0.0-beta.25077.4 + 9.0.0-beta.25077.4 + 9.0.0-beta.25077.4 9.0.0-alpha.1.24575.1 diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index 2915d29bb7f6..29515fc23f64 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -37,7 +37,7 @@ steps: # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' fi buildConfig=Release diff --git a/eng/common/internal/Tools.csproj b/eng/common/internal/Tools.csproj index 32f79dfb3402..feaa6d20812d 100644 --- a/eng/common/internal/Tools.csproj +++ b/eng/common/internal/Tools.csproj @@ -15,16 +15,6 @@ - - - - https://devdiv.pkgs.visualstudio.com/_packaging/dotnet-core-internal-tooling/nuget/v3/index.json; - - - $(RestoreSources); - https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json; - - diff --git a/eng/common/template-guidance.md b/eng/common/template-guidance.md index 5ef6c30ba924..98bbc1ded0ba 100644 --- a/eng/common/template-guidance.md +++ b/eng/common/template-guidance.md @@ -57,7 +57,7 @@ extends: Note: Multiple outputs are ONLY applicable to 1ES PT publishing (only usable when referencing `templates-official`). -# Development notes +## Development notes **Folder / file structure** 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/eng/scripts/InstallJdk.ps1 b/eng/scripts/InstallJdk.ps1 index 0872f241a982..1ba711b5eaa4 100644 --- a/eng/scripts/InstallJdk.ps1 +++ b/eng/scripts/InstallJdk.ps1 @@ -22,8 +22,7 @@ $installDir = "$repoRoot\.tools\jdk\win-x64\" $javacExe = "$installDir\bin\javac.exe" $tempDir = "$repoRoot\obj" if (-not $JdkVersion) { - $globalJson = Get-Content "$repoRoot\global.json" | ConvertFrom-Json - $JdkVersion = $globalJson.'native-tools'.jdk + $JdkVersion = "11.0.24" } if (Test-Path $javacExe) { diff --git a/eng/targets/Helix.Common.props b/eng/targets/Helix.Common.props index ea3801bb8226..8a0fdf3481d3 100644 --- a/eng/targets/Helix.Common.props +++ b/eng/targets/Helix.Common.props @@ -29,7 +29,7 @@ - + diff --git a/global.json b/global.json index f0a083e23ce2..97b2439c9343 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "9.0.101" + "version": "9.0.103" }, "tools": { - "dotnet": "9.0.101", + "dotnet": "9.0.103", "runtimes": { "dotnet/x86": [ "$(MicrosoftNETCoreBrowserDebugHostTransportVersion)" @@ -24,10 +24,10 @@ "xcopy-msbuild": "17.1.0" }, "native-tools": { - "jdk": "11.0.24" + "jdk": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25058.5", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25058.5" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25077.4", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25077.4" } } diff --git a/src/Caching/StackExchangeRedis/src/RedisCache.cs b/src/Caching/StackExchangeRedis/src/RedisCache.cs index debec0237040..4ecbf3628222 100644 --- a/src/Caching/StackExchangeRedis/src/RedisCache.cs +++ b/src/Caching/StackExchangeRedis/src/RedisCache.cs @@ -53,6 +53,8 @@ private static RedisValue[] GetHashFields(bool getData) => getData private long _firstErrorTimeTicks; private long _previousErrorTimeTicks; + internal bool HybridCacheActive { get; set; } + // StackExchange.Redis will also be trying to reconnect internally, // so limit how often we recreate the ConnectionMultiplexer instance // in an attempt to reconnect @@ -375,6 +377,11 @@ private void TryAddSuffix(IConnectionMultiplexer connection) { connection.AddLibraryNameSuffix("aspnet"); connection.AddLibraryNameSuffix("DC"); + + if (HybridCacheActive) + { + connection.AddLibraryNameSuffix("HC"); + } } catch (Exception ex) { diff --git a/src/Caching/StackExchangeRedis/src/RedisCacheImpl.cs b/src/Caching/StackExchangeRedis/src/RedisCacheImpl.cs index dab5bfc8655b..67d262002eb3 100644 --- a/src/Caching/StackExchangeRedis/src/RedisCacheImpl.cs +++ b/src/Caching/StackExchangeRedis/src/RedisCacheImpl.cs @@ -1,6 +1,9 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; +using Microsoft.Extensions.Caching.Hybrid; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -8,13 +11,19 @@ namespace Microsoft.Extensions.Caching.StackExchangeRedis; internal sealed class RedisCacheImpl : RedisCache { - public RedisCacheImpl(IOptions optionsAccessor, ILogger logger) + public RedisCacheImpl(IOptions optionsAccessor, ILogger logger, IServiceProvider services) : base(optionsAccessor, logger) { + HybridCacheActive = IsHybridCacheDefined(services); } - public RedisCacheImpl(IOptions optionsAccessor) + public RedisCacheImpl(IOptions optionsAccessor, IServiceProvider services) : base(optionsAccessor) { + HybridCacheActive = IsHybridCacheDefined(services); } + + // HybridCache optionally uses IDistributedCache; if we're here, then *we are* the DC + private static bool IsHybridCacheDefined(IServiceProvider services) + => services.GetService() is not null; } diff --git a/src/Caching/StackExchangeRedis/test/CacheServiceExtensionsTests.cs b/src/Caching/StackExchangeRedis/test/CacheServiceExtensionsTests.cs index 29a49a7cec70..1d8ce4c3fd40 100644 --- a/src/Caching/StackExchangeRedis/test/CacheServiceExtensionsTests.cs +++ b/src/Caching/StackExchangeRedis/test/CacheServiceExtensionsTests.cs @@ -1,9 +1,15 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Collections.Generic; using System.Linq; +using System.Threading; +using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; +using Microsoft.Extensions.Caching.Hybrid; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Moq; @@ -121,4 +127,41 @@ public void AddStackExchangeRedisCache_UsesLoggerFactoryAlreadyRegisteredWithSer loggerFactory.Verify(); } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void AddStackExchangeRedisCache_HybridCacheDetected(bool hybridCacheActive) + { + // Arrange + var services = new ServiceCollection(); + + services.AddLogging(); + + // Act + services.AddStackExchangeRedisCache(options => { }); + if (hybridCacheActive) + { + services.TryAddSingleton(new DummyHybridCache()); + } + + using var provider = services.BuildServiceProvider(); + var cache = Assert.IsAssignableFrom(provider.GetRequiredService()); + Assert.Equal(hybridCacheActive, cache.HybridCacheActive); + } + + sealed class DummyHybridCache : HybridCache + { + public override ValueTask GetOrCreateAsync(string key, TState state, Func> factory, HybridCacheEntryOptions options = null, IEnumerable tags = null, CancellationToken cancellationToken = default) + => throw new NotSupportedException(); + + public override ValueTask RemoveAsync(string key, CancellationToken cancellationToken = default) + => throw new NotSupportedException(); + + public override ValueTask RemoveByTagAsync(string tag, CancellationToken cancellationToken = default) + => throw new NotSupportedException(); + + public override ValueTask SetAsync(string key, T value, HybridCacheEntryOptions options = null, IEnumerable tags = null, CancellationToken cancellationToken = default) + => throw new NotSupportedException(); + } } 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 48725d72139d..5f488e03a398 100644 --- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj @@ -100,12 +100,12 @@ This package is an internal implementation of the .NET Core SDK and is not meant PkgMicrosoft_NETCore_App_Runtime_$(RuntimeIdentifier.Replace('.', '_')) $(TargetOsName) - linux + linux $(TargetRuntimeIdentifier.Substring(0,$(TargetRuntimeIdentifier.IndexOf('-')))) x64 $(BuildArchitecture) @@ -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) diff --git a/src/Mvc/Mvc.ViewFeatures/src/HtmlAttributePropertyHelper.cs b/src/Mvc/Mvc.ViewFeatures/src/HtmlAttributePropertyHelper.cs index c1ac26b46742..f04f8895bd9a 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/HtmlAttributePropertyHelper.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/HtmlAttributePropertyHelper.cs @@ -25,8 +25,7 @@ public HtmlAttributePropertyHelper(PropertyHelper propertyHelper) /// /// Part of contract. /// - /// - public static void UpdateCache(Type _) + public static void ClearCache(Type[] _) { ReflectionCache.Clear(); } diff --git a/src/Servers/HttpSys/test/FunctionalTests/DelegateTests.cs b/src/Servers/HttpSys/test/FunctionalTests/DelegateTests.cs index 79b77e32a93e..8cb6332a8f6d 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/DelegateTests.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/DelegateTests.cs @@ -217,6 +217,7 @@ public async Task UpdateDelegationRuleTest() [ConditionalFact] [DelegateSupportedCondition(true)] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/60141")] public async Task DelegateAfterReceiverRestart() { var queueName = Guid.NewGuid().ToString(); diff --git a/src/Servers/Kestrel/Core/src/Internal/KestrelServerImpl.cs b/src/Servers/Kestrel/Core/src/Internal/KestrelServerImpl.cs index cefdd3d65282..6bcede93dbea 100644 --- a/src/Servers/Kestrel/Core/src/Internal/KestrelServerImpl.cs +++ b/src/Servers/Kestrel/Core/src/Internal/KestrelServerImpl.cs @@ -39,8 +39,9 @@ public KestrelServerImpl( IEnumerable multiplexedFactories, IHttpsConfigurationService httpsConfigurationService, ILoggerFactory loggerFactory, + DiagnosticSource? diagnosticSource, KestrelMetrics metrics) - : this(transportFactories, multiplexedFactories, httpsConfigurationService, CreateServiceContext(options, loggerFactory, diagnosticSource: null, metrics)) + : this(transportFactories, multiplexedFactories, httpsConfigurationService, CreateServiceContext(options, loggerFactory, diagnosticSource, metrics)) { } @@ -111,7 +112,8 @@ private static ServiceContext CreateServiceContext(IOptions ServiceContext.ServerOptions; - private ServiceContext ServiceContext { get; } + // Internal for testing + internal ServiceContext ServiceContext { get; } private KestrelTrace Trace => ServiceContext.Log; diff --git a/src/Servers/Kestrel/Core/src/KestrelServer.cs b/src/Servers/Kestrel/Core/src/KestrelServer.cs index 75cec0130767..7f2909c77cf6 100644 --- a/src/Servers/Kestrel/Core/src/KestrelServer.cs +++ b/src/Servers/Kestrel/Core/src/KestrelServer.cs @@ -36,6 +36,7 @@ public KestrelServer(IOptions options, IConnectionListener Array.Empty(), new SimpleHttpsConfigurationService(), loggerFactory, + diagnosticSource: null, new KestrelMetrics(new DummyMeterFactory())); } diff --git a/src/Servers/Kestrel/Core/test/KestrelServerTests.cs b/src/Servers/Kestrel/Core/test/KestrelServerTests.cs index a0709d00ad19..e688812a6075 100644 --- a/src/Servers/Kestrel/Core/test/KestrelServerTests.cs +++ b/src/Servers/Kestrel/Core/test/KestrelServerTests.cs @@ -309,6 +309,7 @@ private static KestrelServerImpl CreateKestrelServer( multiplexedFactories, httpsConfigurationService, loggerFactory ?? new LoggerFactory(new[] { new KestrelTestLoggerProvider() }), + diagnosticSource: null, metrics ?? new KestrelMetrics(new TestMeterFactory())); } diff --git a/src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs b/src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs index 759d074a6d82..b24da893ab53 100644 --- a/src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs +++ b/src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs @@ -2,10 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; +using System.IO.Pipelines; using Microsoft.AspNetCore.Connections; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting.Server; using Microsoft.AspNetCore.Server.Kestrel.Core; +using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure; using Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.Internal; using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets; using Microsoft.Extensions.DependencyInjection; @@ -107,6 +109,11 @@ public void ServerIsKestrelServerImpl() .UseKestrel() .Configure(app => { }); - Assert.IsType(hostBuilder.Build().Services.GetService()); + var server = Assert.IsType(hostBuilder.Build().Services.GetService()); + + Assert.NotNull(server.ServiceContext.DiagnosticSource); + Assert.IsType(server.ServiceContext.Metrics); + Assert.Equal(PipeScheduler.ThreadPool, server.ServiceContext.Scheduler); + Assert.Equal(TimeProvider.System, server.ServiceContext.TimeProvider); } } diff --git a/src/SignalR/clients/java/signalr/build.gradle b/src/SignalR/clients/java/signalr/build.gradle index 895f8c4338d3..3e192445c97e 100644 --- a/src/SignalR/clients/java/signalr/build.gradle +++ b/src/SignalR/clients/java/signalr/build.gradle @@ -22,7 +22,7 @@ allprojects { version project.findProperty('packageVersion') ?: "99.99.99-dev" java { - sourceCompatibility = 1.8 + sourceCompatibility = 1.9 } repositories { diff --git a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj index 823c53ae8a72..8068629f03b3 100644 --- a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj +++ b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj @@ -6,6 +6,8 @@ true true + + OSX.15.Amd64.Open;$(SkipHelixQueues) $(OutputPath) true diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java index 53454be031b6..d696a74850eb 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java @@ -444,7 +444,7 @@ public void invocationBindingFailureWhenParsingLocalDateTimeWithoutAppropriateTy assertEquals(HubMessageType.INVOCATION_BINDING_FAILURE, message.getMessageType()); InvocationBindingFailureMessage failureMessage = (InvocationBindingFailureMessage) messages.get(0); - assertEquals("java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 41 path $.arguments[0]", failureMessage.getException().getMessage()); + assertEquals("com.google.gson.JsonSyntaxException", failureMessage.getException().getClass().getName()); } @Test diff --git a/src/submodules/googletest b/src/submodules/googletest index 7d76a231b0e2..e235eb34c6c4 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit 7d76a231b0e29caf86e68d1df858308cd53b2a66 +Subproject commit e235eb34c6c4fed790ccdad4b16394301360dcd4