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)