diff --git a/.github/workflows/check-dependencies.yml b/.github/workflows/check-dependencies.yml
index 8996fcf42..19160c048 100644
--- a/.github/workflows/check-dependencies.yml
+++ b/.github/workflows/check-dependencies.yml
@@ -33,8 +33,10 @@ jobs:
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v2.1.0
with:
- dotnet-version: 7.0.x
- include-prerelease: true
+ dotnet-version: 7.0.*
+ # Restore workload
+ - name: Restore workload
+ run: dotnet workload restore
# Run update depencies script
- name: Update dependencies
run: ./update-dependencies.ps1
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis-cs.yml
similarity index 73%
rename from .github/workflows/codeql-analysis.yml
rename to .github/workflows/codeql-analysis-cs.yml
index 1a0b2ee13..06cf02bf4 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis-cs.yml
@@ -32,7 +32,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- language: [ 'csharp', 'javascript' ]
+ language: [ 'csharp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
@@ -43,8 +43,7 @@ jobs:
- name: Install .NET sdk
uses: actions/setup-dotnet@v1
with:
- dotnet-version: '7.0.x'
- include-prerelease: true
+ dotnet-version: 7.0.*
- name: Setup wasm tools
run: dotnet workload install wasm-tools
env:
@@ -61,23 +60,12 @@ jobs:
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v1
- env:
- GITHIB_FEED_TOKEN: ${{ secrets.GITHIB_FEED_TOKEN }}
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- #- run: |
- # make bootstrap
- # make release
-
+ # Restore nuget package
+ - run: dotnet restore
+ name: Restore
+ # Build
+ - run: dotnet build -c Release
+ name: Build
+
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/codeql-analysis-js.yml b/.github/workflows/codeql-analysis-js.yml
new file mode 100644
index 000000000..468693e2e
--- /dev/null
+++ b/.github/workflows/codeql-analysis-js.yml
@@ -0,0 +1,72 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ master, preview/*, release/* ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [ master ]
+ schedule:
+ - cron: '23 3 * * 2'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ - name: Install .NET sdk
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: '7.0.200'
+ include-prerelease: true
+ - name: Setup wasm tools
+ run: dotnet workload restore
+ env:
+ GITHIB_FEED_TOKEN: ${{ secrets.GITHIB_FEED_TOKEN }}
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ env:
+ GITHIB_FEED_TOKEN: ${{ secrets.GITHIB_FEED_TOKEN }}
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Restore nuget package
+ - run: dotnet restore
+ name: Restore
+ # Build
+ - run: dotnet build -c Release
+ name: Builde
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index c5bd09778..a4d0c7895 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -26,7 +26,7 @@ jobs:
- name: Login to DockerHub
uses: docker/login-action@v1
with:
- username: aguacongas
+ username: theidserverowner
password: ${{ secrets.DOCKER_HUB_PAT }}
- name: 'Checkout'
uses: actions/checkout@v3
@@ -47,37 +47,6 @@ jobs:
push: true
file: src/Aguacongas.TheIdServer.Duende/Dockerfile
tags: aguacongas/theidserver.duende:${{ steps.previoustag.outputs.tag }}
- is4:
- runs-on: ubuntu-latest
- steps:
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v1
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
- - name: Login to DockerHub
- uses: docker/login-action@v1
- with:
- username: aguacongas
- password: ${{ secrets.DOCKER_HUB_PAT }}
- - name: 'Checkout'
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- - name: 'Get Previous tag'
- id: previoustag
- uses: "WyriHaximus/github-action-get-previous-tag@v1"
- with:
- fallback: 1.0.0
- - name: Build and push TheIdServer
- id: docker_build_theidserver
- uses: docker/build-push-action@v2
- env:
- GITHIB_FEED_TOKEN: ${{ secrets.GITHIB_FEED_TOKEN }}
- with:
- build-args: GITHIB_FEED_TOKEN=${{ secrets.GITHIB_FEED_TOKEN }} FILE_VERSION=${{ steps.previoustag.outputs.tag }}.0 SOURCE_VERSION=${{ github.sha }}
- push: true
- file: src/Aguacongas.TheIdServer.IS4/Dockerfile
- tags: aguacongas/theidserver:${{ steps.previoustag.outputs.tag }}
app:
runs-on: ubuntu-latest
steps:
@@ -88,7 +57,7 @@ jobs:
- name: Login to DockerHub
uses: docker/login-action@v1
with:
- username: aguacongas
+ username: theidserverowner
password: ${{ secrets.DOCKER_HUB_PAT }}
- name: 'Checkout'
uses: actions/checkout@v3
diff --git a/.gitignore b/.gitignore
index b4392b7fd..b28b09c33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -375,3 +375,7 @@ override.tf.json
# example: *tfplan*
/sample/Aguacongas.TheIdServer.MtlsSample/client.pks
/sample/Aguacongas.TheIdServer.MtlsSample/.dccache
+/src/Aguacongas.TheIdServer.Duende/TheIdServer.db
+/src/Aguacongas.TheIdServer.Duende/TheIdServer.db-shm
+/src/Aguacongas.TheIdServer.Duende/TheIdServer.db-wal
+/global.json
diff --git a/.sonarlint/TheIdServer.slconfig b/.sonarlint/TheIdServer.slconfig
index 1bc0eec08..6328c13ad 100644
--- a/.sonarlint/TheIdServer.slconfig
+++ b/.sonarlint/TheIdServer.slconfig
@@ -7,9 +7,21 @@
"ProjectKey": "aguacongas_TheIdServer",
"ProjectName": "TheIdServer",
"Profiles": {
+ "Secrets": {
+ "ProfileKey": "AYXoTKWz9Ao2yLWbM0n6",
+ "ProfileTimestamp": "2023-01-25T09:40:14Z"
+ },
"CSharp": {
"ProfileKey": "AW8e9NVJZPoDbtkGSYCm",
- "ProfileTimestamp": "2021-05-05T07:40:16Z"
+ "ProfileTimestamp": "2023-02-22T15:28:25Z"
+ },
+ "Js": {
+ "ProfileKey": "AW8POwb8PHYyZX2yhorZ",
+ "ProfileTimestamp": "2023-01-25T09:26:55Z"
+ },
+ "Ts": {
+ "ProfileKey": "AW8POwb8PHYyZX2yhore",
+ "ProfileTimestamp": "2023-01-25T09:47:40Z"
}
}
}
\ No newline at end of file
diff --git a/.sonarlint/aguacongas_theidserver/CSharp/SonarLint.xml b/.sonarlint/aguacongas_theidserver/CSharp/SonarLint.xml
index 21acd70e2..90bc98dff 100644
--- a/.sonarlint/aguacongas_theidserver/CSharp/SonarLint.xml
+++ b/.sonarlint/aguacongas_theidserver/CSharp/SonarLint.xml
@@ -1,5 +1,5 @@
-
+
sonar.cs.analyzeGeneratedCode
diff --git a/.sonarlint/aguacongas_theidservercsharp.ruleset b/.sonarlint/aguacongas_theidservercsharp.ruleset
index d7cda63e3..dcdb5c053 100644
--- a/.sonarlint/aguacongas_theidservercsharp.ruleset
+++ b/.sonarlint/aguacongas_theidservercsharp.ruleset
@@ -1,5 +1,5 @@
-
+
@@ -28,10 +28,10 @@
+
-
@@ -72,7 +72,6 @@
-
@@ -89,21 +88,23 @@
-
+
+
+
@@ -112,7 +113,6 @@
-
@@ -155,7 +155,6 @@
-
@@ -174,7 +173,9 @@
+
+
@@ -199,11 +200,13 @@
+
+
@@ -243,7 +246,6 @@
-
@@ -253,6 +255,7 @@
+
@@ -325,7 +328,6 @@
-
@@ -335,7 +337,7 @@
-
+
@@ -346,10 +348,9 @@
-
-
+
@@ -358,6 +359,7 @@
+
@@ -365,6 +367,13 @@
+
+
+
+
+
+
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9377c3dab..28b778c2b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,225 @@
+## [7.2.2](https://github.com/Aguafrommars/TheIdServer/compare/7.2.1...7.2.2) (2023-03-20)
+
+
+### Bug Fixes
+
+* dark theme dropdown ([ad43cd9](https://github.com/Aguafrommars/TheIdServer/commit/ad43cd9d43bc7441beb67f22ca2cd5725ca4760e))
+* update packages ([beff18c](https://github.com/Aguafrommars/TheIdServer/commit/beff18cfdb5fc71ea9f029d26a998d6ca34a0488))
+
+## [7.2.1](https://github.com/Aguafrommars/TheIdServer/compare/7.2.0...7.2.1) (2023-03-15)
+
+
+### Bug Fixes
+
+* db migrations ([fe53806](https://github.com/Aguafrommars/TheIdServer/commit/fe53806f84ed58a00dc59725981e76345fbbee0d))
+* impossible to change language on sm device ([c452ccd](https://github.com/Aguafrommars/TheIdServer/commit/c452ccd044fa0706ed280916211ea6b47372c8e4))
+* toggle theme button invisible on sm device ([c09df27](https://github.com/Aguafrommars/TheIdServer/commit/c09df27151521cc28a54720c93b9708fe9204708))
+* update packages ([b65cfe3](https://github.com/Aguafrommars/TheIdServer/commit/b65cfe368c47420dfe2010fd0083a14353142017))
+* update packages ([cde3de2](https://github.com/Aguafrommars/TheIdServer/commit/cde3de2e7fc4f875da7f1c2e33e38dba0a93e8fe))
+
+# [7.2.0](https://github.com/Aguafrommars/TheIdServer/compare/7.1.2...7.2.0) (2023-03-10)
+
+
+### Bug Fixes
+
+* update packages ([f64c16a](https://github.com/Aguafrommars/TheIdServer/commit/f64c16ae5bfc20c0d411c8050eaad2a8893837c0))
+* update packages ([693dfd0](https://github.com/Aguafrommars/TheIdServer/commit/693dfd07042cef364775fd0a7465d6ec16a94c61))
+* update packages ([440bb3f](https://github.com/Aguafrommars/TheIdServer/commit/440bb3f1b5f623b4b2f956ea1f432ae812232dc6))
+* update packages ([4157d5a](https://github.com/Aguafrommars/TheIdServer/commit/4157d5ad3a92856201d32092b28c355e3d1519dd))
+* update packages ([373af77](https://github.com/Aguafrommars/TheIdServer/commit/373af77762ee0b60042272f79559274061e7e39c))
+* update packages ([0ac50a6](https://github.com/Aguafrommars/TheIdServer/commit/0ac50a60c783ac62eebaf5f65bb54f81d14058e1))
+* update packages ([f9c18e6](https://github.com/Aguafrommars/TheIdServer/commit/f9c18e6ff052244e49982581fa17b00b844933c5))
+* update packages ([61aa0b0](https://github.com/Aguafrommars/TheIdServer/commit/61aa0b0baf1fe3c8405c35d851c097b623cef8ac))
+* update packages ([ef8ec20](https://github.com/Aguafrommars/TheIdServer/commit/ef8ec20f2da0d77960f9a53a453a4fb38332fb80))
+* update packages ([73698b3](https://github.com/Aguafrommars/TheIdServer/commit/73698b3af916965a0d99188490212081226c9a81))
+* update packages ([c0389be](https://github.com/Aguafrommars/TheIdServer/commit/c0389beaddb08b410e838df9b4da7f6bbd0e87cc))
+* update packages ([33b4bb6](https://github.com/Aguafrommars/TheIdServer/commit/33b4bb64ac7778c06ca1a5cf26cb8db123f2bb63))
+* update packages ([860be51](https://github.com/Aguafrommars/TheIdServer/commit/860be51fe25df10cc7ce18629b8e6643a9075c3e))
+* update packages ([d886da2](https://github.com/Aguafrommars/TheIdServer/commit/d886da28d8d041f83c6fa8684cc2f568404e5c82))
+* update packages ([8150d95](https://github.com/Aguafrommars/TheIdServer/commit/8150d9566c7dc6bc9ec7a6b20d87f66172c7c6a8))
+
+
+### Features
+
+* admin app dark theme ([25da138](https://github.com/Aguafrommars/TheIdServer/commit/25da138e25e1109f4f4b4173f72d9abeb6989ee9))
+* admin app dark theme ([3df021c](https://github.com/Aguafrommars/TheIdServer/commit/3df021c5cd9e2078216c69bc1fc195441050b6c3))
+
+## [7.1.2](https://github.com/Aguafrommars/TheIdServer/compare/7.1.1...7.1.2) (2023-02-03)
+
+
+### Bug Fixes
+
+* identity options serialization ([1b5a686](https://github.com/Aguafrommars/TheIdServer/commit/1b5a686c936801da688d604c3d9b5f16a7b18527))
+* update packages ([38dee4e](https://github.com/Aguafrommars/TheIdServer/commit/38dee4e258baa08ba49234e015ada747c66e0a2f))
+* update packages ([5e5b988](https://github.com/Aguafrommars/TheIdServer/commit/5e5b9882d5407bf66986404af653e146a692c4ca))
+* update packages ([7ff02de](https://github.com/Aguafrommars/TheIdServer/commit/7ff02deff531efeff58f6044fb790531daa27503))
+
+## [7.1.1](https://github.com/Aguafrommars/TheIdServer/compare/7.1.0...7.1.1) (2023-01-26)
+
+
+### Bug Fixes
+
+* update packages ([92531e8](https://github.com/Aguafrommars/TheIdServer/commit/92531e837039c73f41cfa284719bc2a6f6c240a4))
+* update packages ([a57ed6a](https://github.com/Aguafrommars/TheIdServer/commit/a57ed6af7e7204c03a8be185ccc209c8c9e3bdfd))
+* update packages ([149e38e](https://github.com/Aguafrommars/TheIdServer/commit/149e38e2062b15e4a0af7ac0f8a7174e8fa35680))
+
+# [7.1.0](https://github.com/Aguafrommars/TheIdServer/compare/7.0.3...7.1.0) (2023-01-21)
+
+
+### Bug Fixes
+
+* error unprotecting key with kid ([8eef54d](https://github.com/Aguafrommars/TheIdServer/commit/8eef54df01fae6fb55e2ee0e260214977b95f121))
+* update packages ([a0d3ebf](https://github.com/Aguafrommars/TheIdServer/commit/a0d3ebfd3a55dce5e55f283243546578a9a4364d))
+* update packages ([7bd4945](https://github.com/Aguafrommars/TheIdServer/commit/7bd49459e3dc62c8805fac522b158ce6f847c7d1))
+
+
+### Features
+
+* scope used by ([24e43a2](https://github.com/Aguafrommars/TheIdServer/commit/24e43a2929e57e872f3941bce283b351de283124))
+
+## [7.0.3](https://github.com/Aguafrommars/TheIdServer/compare/7.0.2...7.0.3) (2023-01-18)
+
+
+### Bug Fixes
+
+* request header too long on external callback ([ac4518a](https://github.com/Aguafrommars/TheIdServer/commit/ac4518af8acae101d58e01386557a868646cc4a0))
+* update packages ([400becf](https://github.com/Aguafrommars/TheIdServer/commit/400becf0506cc945a76eb62306bc2ad793932c27))
+* update packages ([344ba82](https://github.com/Aguafrommars/TheIdServer/commit/344ba82ffce22575c146f2b75371608193c52b69))
+* update packages ([71ad2d6](https://github.com/Aguafrommars/TheIdServer/commit/71ad2d6ee837f1342d603097aa01370daeae1713))
+* update packages ([32be023](https://github.com/Aguafrommars/TheIdServer/commit/32be0236a9d4d7cc09a2dc0860ba61dacfa7a512))
+* update packages ([506f4b8](https://github.com/Aguafrommars/TheIdServer/commit/506f4b88d9a18e4ae29fb7805c3991950a24a619))
+* update packages ([96533d7](https://github.com/Aguafrommars/TheIdServer/commit/96533d7e89b8117c184422bb23a76be7e3e8bda2))
+* update packages ([b2cecbf](https://github.com/Aguafrommars/TheIdServer/commit/b2cecbffc503f961d51d61d281f120d41c81f4b2))
+* update packages ([4cc361f](https://github.com/Aguafrommars/TheIdServer/commit/4cc361f79a58aaacd2558f92180c886c86c6b125))
+* update packages ([df14d78](https://github.com/Aguafrommars/TheIdServer/commit/df14d782f063014bbf9f050e84e9ea6e0e712555))
+* update packages ([a7b8244](https://github.com/Aguafrommars/TheIdServer/commit/a7b8244b7a1412a467a8d91464a19cd8d704a2d7))
+* update packages ([2180085](https://github.com/Aguafrommars/TheIdServer/commit/2180085d3592bf00e0e59e96f38a88754eb7a585))
+
+## [7.0.2](https://github.com/Aguafrommars/TheIdServer/compare/7.0.1...7.0.2) (2022-12-15)
+
+
+### Bug Fixes
+
+* cve-2022-41089 ([4984b6e](https://github.com/Aguafrommars/TheIdServer/commit/4984b6e8bd405c064dff40e5f1d7f8cd6c2cdcad)), closes [#44973](https://github.com/Aguafrommars/TheIdServer/issues/44973)
+* update packages ([9b8f211](https://github.com/Aguafrommars/TheIdServer/commit/9b8f2115151180e43876936b05e2c1aa46aa469e))
+* update packages ([fca1e6b](https://github.com/Aguafrommars/TheIdServer/commit/fca1e6b588730d28ac0e8ec5d060d31282bd8429))
+
+## [7.0.1](https://github.com/Aguafrommars/TheIdServer/compare/7.0.0...7.0.1) (2022-11-23)
+
+
+### Bug Fixes
+
+* uri scheme validation ([53b400c](https://github.com/Aguafrommars/TheIdServer/commit/53b400cd1f11e36baa9abd4b8a5ae1cabf6b7a80))
+
+# [7.0.0](https://github.com/Aguafrommars/TheIdServer/compare/6.3.0...7.0.0) (2022-11-21)
+
+
+### Bug Fixes
+
+* automatic redirect after logout ([a5a716d](https://github.com/Aguafrommars/TheIdServer/commit/a5a716d667363e9a9aaf1b3957c9ad6de6484af9))
+* ciba filter ([19b3dfd](https://github.com/Aguafrommars/TheIdServer/commit/19b3dfd8cd84955277c38485845d597fd3afcdad))
+* duplicate column name 'CoordinateLifetimeWithUserSession' ([0499f5a](https://github.com/Aguafrommars/TheIdServer/commit/0499f5a9206c8394e15a52933004740161615be6))
+* duplicate column name 'CoordinateLifetimeWithUserSession' ([4ab25a2](https://github.com/Aguafrommars/TheIdServer/commit/4ab25a22d97aab6c7368bb2c6685c605aec09bb2))
+* duplicate column name 'RequireRequestObject' ([2352d15](https://github.com/Aguafrommars/TheIdServer/commit/2352d159da2676d526d992234e9039336a2fff18))
+* foreign key constraint incompatible ([1814e61](https://github.com/Aguafrommars/TheIdServer/commit/1814e613c73dbc3b25ecc44a5f3ff9dd0d3a0924))
+* mysql incompatible constraint ([0bf6159](https://github.com/Aguafrommars/TheIdServer/commit/0bf6159a5493cdf1cdb272e50a15a3c4bda5862f))
+* packages dependencies issues ([8b80cf7](https://github.com/Aguafrommars/TheIdServer/commit/8b80cf736c3b268933ae0598fa08564027a45976))
+* src/Aguacongas.TheIdServer.BlazorApp/Dockerfile to reduce vulnerabilities ([df7480c](https://github.com/Aguafrommars/TheIdServer/commit/df7480cb63ff35e0d92c0a90cd336ff7051e4c3b))
+* src/Aguacongas.TheIdServer.BlazorApp/Dockerfile to reduce vulnerabilities ([b7f85fc](https://github.com/Aguafrommars/TheIdServer/commit/b7f85fc1562daf7a71252cf4214c9c375fc03750))
+* update packages ([8fab6db](https://github.com/Aguafrommars/TheIdServer/commit/8fab6db287dc7005bc199c5ad3ff5e128f93531d))
+* update packages ([a987336](https://github.com/Aguafrommars/TheIdServer/commit/a98733697ed9902a179c8c7a61c348045942f710))
+* update packages ([31d0e8c](https://github.com/Aguafrommars/TheIdServer/commit/31d0e8ca45d292ee88896bea027faf6f883e3d80))
+* update packages ([2fb57a4](https://github.com/Aguafrommars/TheIdServer/commit/2fb57a4a5ea19f02dee126024e4a8ebc6d0cd9ae))
+* update packages ([4846747](https://github.com/Aguafrommars/TheIdServer/commit/4846747fdb4b45583b55098d2ecaed16c8362c93))
+* update packages ([853f29b](https://github.com/Aguafrommars/TheIdServer/commit/853f29bb58e6b6419a5dd1cbeb7cadcaa5bc3231))
+* update packages ([4d99656](https://github.com/Aguafrommars/TheIdServer/commit/4d9965624fa4773aafe0a3375a100cd78cf08f9f))
+* update packages ([05cbbc4](https://github.com/Aguafrommars/TheIdServer/commit/05cbbc4905a1d142771c1713907e7cbe6cf25a56))
+* update packages ([bcfa2fd](https://github.com/Aguafrommars/TheIdServer/commit/bcfa2fdcf1521ed30ddca3e3a9e0c7eedacc154d))
+* update packages ([64d1483](https://github.com/Aguafrommars/TheIdServer/commit/64d148357b8bd04f132781735938167afc7d4447))
+* update packages ([4fb4b2c](https://github.com/Aguafrommars/TheIdServer/commit/4fb4b2cf02f941df7e68d1c737d290fa49d391e2))
+* update packages ([0bb70e8](https://github.com/Aguafrommars/TheIdServer/commit/0bb70e8d395ff20a9bb966fae28be7d2f0a39f16))
+* update packages ([fae7cd1](https://github.com/Aguafrommars/TheIdServer/commit/fae7cd1ccbc14a8b9c3c4d47d3e375d8215263b9))
+* update packages ([daf1712](https://github.com/Aguafrommars/TheIdServer/commit/daf17128fe29c9163f1f9b878d026f0750be16fd))
+* update packages ([7c8b6a0](https://github.com/Aguafrommars/TheIdServer/commit/7c8b6a085ee325fe21f442bc986dc0c871c369d2))
+* update packages ([cc6c760](https://github.com/Aguafrommars/TheIdServer/commit/cc6c760211eb482f41e48181f5e27dfb60aa6e57))
+* update packages ([0b0887c](https://github.com/Aguafrommars/TheIdServer/commit/0b0887cbd5af0888be850649e8b8b3d7e4ede5bd))
+* update packages ([f28c5a7](https://github.com/Aguafrommars/TheIdServer/commit/f28c5a71e06b59e7d99e08c0f301ca605920d8a5))
+* update packages ([c4a427c](https://github.com/Aguafrommars/TheIdServer/commit/c4a427cfcacd6418b5bac8293f12a15380871320))
+* update packages ([4057d45](https://github.com/Aguafrommars/TheIdServer/commit/4057d45ead1231e5c79cb694a983a3771b97fc9a))
+* update packages ([1950f5b](https://github.com/Aguafrommars/TheIdServer/commit/1950f5b8debf03f379c31b56276b4454294c98eb))
+* update packages ([86f8a79](https://github.com/Aguafrommars/TheIdServer/commit/86f8a793f50996b74af68e437eb0aaa2def28165))
+* update packages ([6861d6b](https://github.com/Aguafrommars/TheIdServer/commit/6861d6b3de7079945ec6cbf9a4b30d0ca5aedcfb))
+* update packages ([b9135cc](https://github.com/Aguafrommars/TheIdServer/commit/b9135ccdf439ef4fcfeeb00b29e34eadeeb5b03b))
+* update packages ([dea016d](https://github.com/Aguafrommars/TheIdServer/commit/dea016ddd9d07375cbe64d80c65d0f0d00bba9b0))
+* update packages ([02d5e4a](https://github.com/Aguafrommars/TheIdServer/commit/02d5e4a459e744f089b08dc84891bf61c0648c14))
+* update packages ([40fe52d](https://github.com/Aguafrommars/TheIdServer/commit/40fe52d8b0f4f19419c0bf5ddcd6176ae743f928))
+* update packages ([5ad19be](https://github.com/Aguafrommars/TheIdServer/commit/5ad19be73f52d766003f11b69b714521719b5726))
+* update packages ([4d00826](https://github.com/Aguafrommars/TheIdServer/commit/4d0082612f24ac66dd7a72f44e42510baadad3b0))
+* update packages ([3bb28d5](https://github.com/Aguafrommars/TheIdServer/commit/3bb28d55d69028610c80e3ec15c209b3320e7fe0))
+* update packages ([9b94dd2](https://github.com/Aguafrommars/TheIdServer/commit/9b94dd23a8888961d73e2e151f17f34bafb03c05))
+* update packages ([19a9bda](https://github.com/Aguafrommars/TheIdServer/commit/19a9bda37a603d95a8d2de81648fb989bca91855))
+* update packages ([eb117fa](https://github.com/Aguafrommars/TheIdServer/commit/eb117fa818dbe5f74d96e30f5d1942c985afb045))
+* update packages ([0798f79](https://github.com/Aguafrommars/TheIdServer/commit/0798f797b727b06837c8dfe502a67e654951bfa6))
+* update packages ([6b71a69](https://github.com/Aguafrommars/TheIdServer/commit/6b71a695018b28d8f4d0c4e209e2d8c47a17f638))
+* update packages ([4304bfc](https://github.com/Aguafrommars/TheIdServer/commit/4304bfce52838b5b337db2f7bc3bb3ced1c94bbf))
+* update packages ([37d10d6](https://github.com/Aguafrommars/TheIdServer/commit/37d10d6310a21085a6e2b96443050dfd784018da))
+* update packages ([b009c37](https://github.com/Aguafrommars/TheIdServer/commit/b009c37a8a55eb9d737e40d6325f18bea81c81b5))
+* update packages ([ef7c48d](https://github.com/Aguafrommars/TheIdServer/commit/ef7c48de9e043862b6e198913f507a710f1bf6c3))
+* update packages ([178bcfe](https://github.com/Aguafrommars/TheIdServer/commit/178bcfe81094d1acf42f8c0dfbb55b9eb769a5ae))
+* update packages ([f4f93dc](https://github.com/Aguafrommars/TheIdServer/commit/f4f93dce4b07df626273c31282b6b73a872935b4))
+* update packages ([bb8c589](https://github.com/Aguafrommars/TheIdServer/commit/bb8c589002ee2da7903defd8f5ee8276619f682f))
+* update packages ([a9adea9](https://github.com/Aguafrommars/TheIdServer/commit/a9adea9020dd7dad0a81e933e53d40707a0e96f6))
+* update packages ([85cee88](https://github.com/Aguafrommars/TheIdServer/commit/85cee88635df5d34defc10319952f4f3c99de7d0))
+* update packages ([4f9876e](https://github.com/Aguafrommars/TheIdServer/commit/4f9876e9503e3615dc894b9aaf0053c1d67d85f3))
+* update packages ([c5edc39](https://github.com/Aguafrommars/TheIdServer/commit/c5edc391cd8e3976fba79887f315e5c8c2fd5198))
+* update packages ([2a2a7a4](https://github.com/Aguafrommars/TheIdServer/commit/2a2a7a4fc00625c01b36e9fcb8773e9493dd331b))
+* update packages ([4953390](https://github.com/Aguafrommars/TheIdServer/commit/4953390cde716686719fc319d3082dd9cd7a3950))
+* update packages ([45bc8db](https://github.com/Aguafrommars/TheIdServer/commit/45bc8dba953a3a392aeaf4ef7d73e7c1c8d80c89))
+* update packages ([009962a](https://github.com/Aguafrommars/TheIdServer/commit/009962a2174708bdb5cc713edb2c19fdab9c9123))
+* update packages ([b6eb0d3](https://github.com/Aguafrommars/TheIdServer/commit/b6eb0d3a21b58274cf87af0d9ade1ffec2a1237a))
+* update packages ([16a7308](https://github.com/Aguafrommars/TheIdServer/commit/16a73084ee09675393c0838cf8affab2c1ff5cd7))
+* update packages ([4f370f6](https://github.com/Aguafrommars/TheIdServer/commit/4f370f65dc7665c22fe1993c823dea3087f1c6bb))
+* update packages ([117c806](https://github.com/Aguafrommars/TheIdServer/commit/117c806ffe593be6f1b40bdd63b48b74a0bbf7c6))
+* update packages ([594d443](https://github.com/Aguafrommars/TheIdServer/commit/594d443e2af5d14fee332a0aa48a7b5668b8f98b))
+* update packages ([9412cec](https://github.com/Aguafrommars/TheIdServer/commit/9412cec287693430b2500f6a10b002a47a7b220e))
+* update packages ([bd21452](https://github.com/Aguafrommars/TheIdServer/commit/bd21452abcaed51b3baadbaee4076607214dd60c))
+* update packages ([cead51e](https://github.com/Aguafrommars/TheIdServer/commit/cead51e25d48357c616fa0e3f8aaaf8c2933ba72))
+* update packages ([836dcfc](https://github.com/Aguafrommars/TheIdServer/commit/836dcfc57020aab5353fb9c9136dde16b1384c69))
+* ut8 char set ([7a17adb](https://github.com/Aguafrommars/TheIdServer/commit/7a17adbc0777277d86e3cf7e03b7adeb5705e579))
+
+
+### Build System
+
+* prepare preview 7.0.0 ([8c81013](https://github.com/Aguafrommars/TheIdServer/commit/8c81013fb4f426863a49d1d8c0965722564222f2))
+
+
+* Merge pull request #900 from Aguafrommars/feature/end-of-is4 ([cb7911b](https://github.com/Aguafrommars/TheIdServer/commit/cb7911b18690df24987692979df920d497b342c5)), closes [#900](https://github.com/Aguafrommars/TheIdServer/issues/900)
+
+
+### Features
+
+* clone entities ([e20214b](https://github.com/Aguafrommars/TheIdServer/commit/e20214b935ffff6f401d432cff6544a66514ceac)), closes [#888](https://github.com/Aguafrommars/TheIdServer/issues/888)
+* clone entities ([#889](https://github.com/Aguafrommars/TheIdServer/issues/889)) ([06dda00](https://github.com/Aguafrommars/TheIdServer/commit/06dda00c5335ee68f237561cd19e7782448a5860)), closes [#888](https://github.com/Aguafrommars/TheIdServer/issues/888)
+* **blazor:** confgure html element identifier ([c6ebaa9](https://github.com/Aguafrommars/TheIdServer/commit/c6ebaa98519078a39fbc9355c829d5c40ae5a358))
+* **blazor:** configure ciba + server side session options ([635f058](https://github.com/Aguafrommars/TheIdServer/commit/635f058cf1731b644540ea37ab47ab65c99d5a43))
+* dinamic windows provider ([2aab545](https://github.com/Aguafrommars/TheIdServer/commit/2aab545669f77d26689bea283bc769a5c89a5a3d))
+* display loading when prerender the app ([300cd3c](https://github.com/Aguafrommars/TheIdServer/commit/300cd3c941af59f7c21039aba6800ed20b390bdd))
+* dynamic windows provider ([#809](https://github.com/Aguafrommars/TheIdServer/issues/809)) ([5bf7d9d](https://github.com/Aguafrommars/TheIdServer/commit/5bf7d9dfdb04d3154a2756a2177d411fea3b0311))
+* filter external provider claims mappings ([8c3008b](https://github.com/Aguafrommars/TheIdServer/commit/8c3008b2287b10adbce26e27c33ebc25a5c31b0c))
+* login page register and pwd links ([d8c61df](https://github.com/Aguafrommars/TheIdServer/commit/d8c61dff1d8c86a45f899ec71fab7b38cf366939)), closes [#790](https://github.com/Aguafrommars/TheIdServer/issues/790) [#792](https://github.com/Aguafrommars/TheIdServer/issues/792)
+* map about to git ahsh ([e84b876](https://github.com/Aguafrommars/TheIdServer/commit/e84b8763accb89a2fbefbbae854a1dec588fb4d9))
+* prevent navigation on entity changed ([0d49125](https://github.com/Aguafrommars/TheIdServer/commit/0d49125225b7220e8d595ce3738e91593c5f726d))
+
+
+### Reverts
+
+* Revert "refactor(blazorapp): use Pascal json file" ([e7f8312](https://github.com/Aguafrommars/TheIdServer/commit/e7f83127ac4d3228c3adad8e4b64ec2de75c3ac8))
+
+
+### BREAKING CHANGES
+
+* Aguacongas.IdentityServer.Store and Aguacongas.IdentityServer.Admin.Http.Store target net7.0 instead of netstandard2.0
+* use 7.0.0 framework
# [6.3.0](https://github.com/Aguafrommars/TheIdServer/compare/6.2.1...6.3.0) (2022-07-01)
diff --git a/README.md b/README.md
index ca237a0dd..250754d0e 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,21 @@
# TheIdServer
-[OpenID/Connect](https://openid.net/connect/), [OAuth2](https://oauth.net/2/) and [WS-Federation](https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html) server based on [IdentityServer4](https://identityserver4.readthedocs.io/en/latest/) or [Duende IdentityServer](https://duendesoftware.com/products/identityserver).
+[OpenID/Connect](https://openid.net/connect/), [OAuth2](https://oauth.net/2/) and [WS-Federation](https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html) server based on [Duende IdentityServer](https://duendesoftware.com/products/identityserver) and [ITfoxtec Identity SAML 2.0](https://www.itfoxtec.com/IdentitySaml2).
+
+> [OpenID/Connect](https://openid.net/connect/), [OAuth2](https://oauth.net/2/), [WS-Federation](https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html) and [Saml 2.0](http://docs.oasis-open.org/security/saml/v2.0/sstc-saml-approved-errata-2.0.html) are protocols that enable secure authentication and authorization of users and applications on the web. They allow users to sign in with their existing credentials from an identity provider (such as Google, Facebook, Microsoft, Twitter ans so-on) and grant access to their data and resources on different platforms and services. These protocols also enable developers to create applications that can interact with various APIs and resources without exposing the user’s credentials or compromising their privacy. Some examples of applications that use these protocols are web browsers, mobile apps, web APIs, and single-page applications.
+
+> [Duende IdentityServer](https://duendesoftware.com/products/identityserver) is a framework that implements OpenID Connect and OAuth 2.0 protocols for ASP.NET Core applications. It allows you to create your own identity and access management solution that can integrate with various identity providers and APIs.
+
+> [ITfoxtec Identity SAML 2.0](https://www.itfoxtec.com/IdentitySaml2) is a framework that implements SAML-P for both Identity Provider (IdP) and Relying Party (RP).
+
+> TheIdServer implements all Duende IdentityServer features, a SAML 2.0 Identity Provider and comes with an admin UI.
[](https://sonarcloud.io/dashboard?id=aguacongas_TheIdServer)
[](https://ci.appveyor.com/project/aguacongas/theidserver) [](https://github.com/Aguafrommars/TheIdServer/actions/workflows/docker.yml) [](https://artifacthub.io/packages/search?repo=aguafrommars)
-### Try it now at [https://theidserver.herokuapp.com/](https://theidserver.herokuapp.com/) for the IdentityServer4 version
-### Or [https://theidserver-duende.herokuapp.com/](https://theidserver-duende.herokuapp.com/) for the Duende IdentityServer version
+### Try it now at [https://theidserver-duende.herokuapp.com/](https://theidserver-duende.herokuapp.com/)
**login**: alice
**pwd**: Pass123$
@@ -47,7 +54,7 @@ Choose your favorite:
### Server
-* [OpenID/Connect](https://openid.net/connect/), [OAuth2](https://oauth.net/2/) and [WS-Federation](https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html) server
+* [OpenID/Connect](https://openid.net/connect/), [OAuth2](https://oauth.net/2/), [WS-Federation](https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html) and [Saml2P](http://docs.oasis-open.org/security/saml/v2.0/sstc-saml-approved-errata-2.0.html) server
* [Large choice of database](https://github.com/Aguafrommars/TheIdServer/blob/master/src/Aguacongas.TheIdServer.Duende/README.md#using-entity-framework-core)
* [Dynamic external provider configuration](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md#configure-the-provider-hub)
* [Public / Private installation](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md#using-the-api)
@@ -55,20 +62,19 @@ Choose your favorite:
* [Claims providers](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/CLAIMS_PROVIDER.md)
* [External claims mapping](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/EXTERNAL_CLAIMS_MAPPING.md)
* [Localizable](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/LOCALIZATION.md)
-* [OpenID Connect Dynamic Client Registration](https://openid.net/specs/openid-connect-regiAguacongas.TheIdServer.Duendestration-1_0.html)
-* [Auto remove expired tokens](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer/README.md#configure-token-cleaner)
+* [OpenID Connect Dynamic Client Registration](https://openid.net/specs/openid-connect-registration-1_0.html)
+* [Auto remove expired tokens](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md#configure-token-cleaner)
* [Keys rotation](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/KEYS_ROTATION.md)
* [Create Personal Access Token](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/PAT.md)
-* [Duende CIBA integration](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/CIBA.md)(Duende version only)
+* [Duende CIBA integration](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/CIBA.md)
* [Token exchange](https://datatracker.ietf.org/doc/html/rfc8693)([RFC 8693](https://datatracker.ietf.org/doc/html/rfc8693))
-* [Health checks](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer/README.md#health-checks)
-* [OpenTelemety](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/Aguacongas.TheIdServer/OPEN_TELEMETRY.md)
-* [Server side session](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/SERVER_SIDE_SESSIONS.md)(Duende version only)
+* [Health checks](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md#health-checks)
+* [OpenTelemety](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/OPEN_TELEMETRY.md)
+* [Server side session](https://github.com/Aguafrommars/TheIdServer/tree/master/doc/SERVER_SIDE_SESSIONS.md)
## Setup
-* Read the [IS4 server README](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.IS4/README.md) to configure IdentityServer4 version.
-* Read the [Duende server README](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md) to configure Duende IdentityServer version.
+* Read the [Duende server README](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Duende/README.md) to configure the Duende IdentityServer.
**You'll need to [acquire a license](https://duendesoftware.com/products/identityserver#pricing) for a commercial use of this version.**
* Read the [application README](https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.BlazorApp/README.md) for application configuration.
@@ -78,7 +84,6 @@ You can build the solution with Visual Studio or use the `dotnet build` command.
To build docker images launch at solution root:
```bash
-docker build -t aguacongas/theidserver:dev -f "./src/Aguacongas.TheIdServer.IS4/Dockerfile" .
docker build -t aguacongas/theidserver.duende:dev -f "./src/Aguacongas.TheIdServer.Duende/Dockerfile" .
docker build -t aguacongas/theidserverapp:dev -f "./src/Aguacongas.TheIdServer.BlazorApp/Dockerfile" .
```
@@ -99,3 +104,7 @@ Choose your favorite:
* [github sponsor](https://github.com/sponsors/aguacongas/sponsorships?sponsor=aguacongas&tier_id=151490)
* [issuehunts](https://issuehunt.io/r/Aguafrommars/TheIdServer/issues/170)
* [liberapay](https://liberapay.com/aguacongas)
+
+## IdentityServer4 end of support
+
+The old IS4 version has been remove from the solution as [IS4 reach is end of support](https://github.com/IdentityServer/IdentityServer4#important-update).
diff --git a/THIRD-PARTY-NOTICES b/THIRD-PARTY-NOTICES
index d59a9cea3..d83055aff 100644
--- a/THIRD-PARTY-NOTICES
+++ b/THIRD-PARTY-NOTICES
@@ -131,5 +131,35 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-
-
+License notice for ITfoxtec/ITfoxtec.Identity.Saml2
+---------------------------------------------------
+
+BSD 3-Clause License
+
+Copyright (c) 2019, ITfoxtec
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/TheIdServer.sln b/TheIdServer.sln
index eeed40e74..4397ae170 100644
--- a/TheIdServer.sln
+++ b/TheIdServer.sln
@@ -171,108 +171,26 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.WsFe
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Duende", "Duende", "{C6E07186-85C0-4243-BE03-66BEA518B81C}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IS4", "IS4", "{281BCCF6-2EA9-480B-8527-31C0AE8732B8}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{0570B25A-576D-4EE2-BD3E-149ECA956DF1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.Shared\Aguacongas.IdentityServer.Shared.csproj", "{1FE07D46-7548-463A-993E-8B1B5AF90533}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.IS4\Aguacongas.IdentityServer.IS4.csproj", "{D083F8F5-AF10-4D07-8743-C9DB2516F2BA}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.Duende\Aguacongas.IdentityServer.Duende.csproj", "{D600300A-285D-4CB1-AC59-FFA435091C99}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.Admin.Shared\Aguacongas.IdentityServer.Admin.Shared.csproj", "{913A6E8C-8E43-4EAE-B793-271CF5A91FB9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.Admin.IS4\Aguacongas.IdentityServer.Admin.IS4.csproj", "{EE0F3688-0F89-47A2-B2A3-66A941B0197F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.KeysRotation.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.KeysRotation.Shared\Aguacongas.IdentityServer.KeysRotation.Shared.csproj", "{35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.KeysRotation.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.KeysRotation.IS4\Aguacongas.IdentityServer.KeysRotation.IS4.csproj", "{B5898F12-9EBD-4272-9D83-927601EE0941}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.KeysRotation.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.KeysRotation.Duende\Aguacongas.IdentityServer.KeysRotation.Duende.csproj", "{7E9CA585-F6BA-4268-BA27-357FDE181553}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.Admin.Duende\Aguacongas.IdentityServer.Admin.Duende.csproj", "{7604E039-945D-4682-8277-79F26B02DE0E}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.MongoDb.Store.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.MongoDb.Store.Shared\Aguacongas.IdentityServer.MongoDb.Store.Shared.csproj", "{1663AD74-C7CE-4C15-AE06-959BFF54FBB3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.MongoDb.Store.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.MongoDb.Store.IS4\Aguacongas.IdentityServer.MongoDb.Store.IS4.csproj", "{73B34C90-ADAB-4167-869D-E1BFF057C45B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.MongoDb.Store.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.MongoDb.Store.Duende\Aguacongas.IdentityServer.MongoDb.Store.Duende.csproj", "{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.RavenDb.Store.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.RavenDb.Store.Shared\Aguacongas.IdentityServer.RavenDb.Store.Shared.csproj", "{EEC89F96-85E7-47A5-8245-8927F86EA0E0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.RavenDb.Store.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.RavenDb.Store.IS4\Aguacongas.IdentityServer.RavenDb.Store.IS4.csproj", "{23F487DA-93A6-4D8B-A634-CCE7419E6165}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.RavenDb.Store.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.RavenDb.Store.Duende\Aguacongas.IdentityServer.RavenDb.Store.Duende.csproj", "{E6E3E332-5E21-4F9F-8163-3E88320439C9}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.EntityFramework.Store.Shared\Aguacongas.IdentityServer.EntityFramework.Store.Shared.csproj", "{3B3EAA4B-4517-4826-86D1-2EBF717BAADD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.EntityFramework.Store.IS4\Aguacongas.IdentityServer.EntityFramework.Store.IS4.csproj", "{4BF69395-D0BD-43AC-8B25-2A78C485D60A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.EntityFramework.Store.Duende\Aguacongas.IdentityServer.EntityFramework.Store.Duende.csproj", "{1B388FE8-44AD-4117-A646-8DABF32EB6F1}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.WsFederation.Shared", "src\IdentityServer\Shared\Aguacongas.IdentityServer.WsFederation.Shared\Aguacongas.IdentityServer.WsFederation.Shared.csproj", "{6B62A0F5-8098-4CB0-9F46-1E895E85254B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.WsFederation.IS4", "src\IdentityServer\IS4\Aguacongas.IdentityServer.WsFederation.IS4\Aguacongas.IdentityServer.WsFederation.IS4.csproj", "{925AC605-6847-461D-8311-9A306F718A47}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.WsFederation.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.WsFederation.Duende\Aguacongas.IdentityServer.WsFederation.Duende.csproj", "{9741622E-2995-4ECC-9469-162191277D39}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer", "src\Aguacongas.TheIdServer\Aguacongas.TheIdServer.csproj", "{CA8876CD-3AE5-4621-B797-9B5816D9CD48}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Shared", "src\Aguacongas.TheIdServer.Shared\Aguacongas.TheIdServer.Shared.csproj", "{74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.IS4", "src\Aguacongas.TheIdServer.IS4\Aguacongas.TheIdServer.IS4.csproj", "{389F0881-25F1-4EC8-AA20-B6E2FE6C6449}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Duende", "src\Aguacongas.TheIdServer.Duende\Aguacongas.TheIdServer.Duende.csproj", "{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{175EFB99-30E9-45E9-9ED6-F48D88F67C19}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IS4", "IS4", "{12227AAB-94C7-4CE3-907D-2EBBF2660FEE}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Duende", "Duende", "{51A14B0A-FEBA-4941-A114-A7AAB132CDBA}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.Test.Shared", "test\Shared\Aguacongas.IdentityServer.Admin.Test.Shared\Aguacongas.IdentityServer.Admin.Test.Shared.csproj", "{E202F809-08D3-4EBC-AD85-A475CBABBFF3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.Test.Shared", "test\Shared\Aguacongas.IdentityServer.EntityFramework.Store.Test.Shared\Aguacongas.IdentityServer.EntityFramework.Store.Test.Shared.csproj", "{F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Http.Store.Test.Shared", "test\Shared\Aguacongas.IdentityServer.Http.Store.Test.Shared\Aguacongas.IdentityServer.Http.Store.Test.Shared.csproj", "{9012AE43-B700-4E06-A883-F7475EC1DDB8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.KeysRotation.Test.Shared", "test\Shared\Aguacongas.IdentityServer.KeysRotation.Test.Shared\Aguacongas.IdentityServer.KeysRotation.Test.Shared.csproj", "{308ECEC8-D688-46EC-80D5-2C4CFDD42754}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.MongoDb.Store.Test.Shared", "test\Shared\Aguacongas.IdentityServer.MongoDb.Store.Test.Shared\Aguacongas.IdentityServer.MongoDb.Store.Test.Shared.csproj", "{72F41E60-3260-40F0-9485-CEAC5FB6EE5F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.RavenDb.Store.Test.Shared", "test\Shared\Aguacongas.IdentityServer.RavenDb.Store.Test.Shared\Aguacongas.IdentityServer.RavenDb.Store.Test.Shared.csproj", "{FEA93C51-FE7D-4AD2-BA69-93079CDC177E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Authentication.IntegrationTest.Shared", "test\Shared\Aguacongas.TheIdServer.Authentication.Integration.Test.Shared\Aguacongas.TheIdServer.Authentication.IntegrationTest.Shared.csproj", "{C5239184-EFC8-40EA-8E85-221CA7EB5D11}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Identity.IntegrationTest.Shared", "test\Shared\Aguacongas.TheIdServer.Identity.IntegrationTest.Shared\Aguacongas.TheIdServer.Identity.IntegrationTest.Shared.csproj", "{7EE67579-AB69-40EE-8F47-631D447E5B14}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Identity.Test.Shared", "test\Shared\Aguacongas.TheIdServer.Identity.Test.Shared\Aguacongas.TheIdServer.Identity.Test.Shared.csproj", "{DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.IntegrationTest.Shared", "test\Shared\Aguacongas.TheIdServer.IntegrationTest.Shared\Aguacongas.TheIdServer.IntegrationTest.Shared.csproj", "{874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Test.Shared", "test\Shared\Aguacongas.TheIdServer.Test.Shared\Aguacongas.TheIdServer.Test.Shared.csproj", "{21FD10C3-3660-4729-9A70-E82699BB41B4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.IS4.Test", "test\IS4\Aguacongas.IdentityServer.EntityFramework.Store.IS4.Test\Aguacongas.IdentityServer.EntityFramework.Store.IS4.Test.csproj", "{9D21E6D9-A8D8-4D47-B445-DB352CF99936}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Http.Store.IS4.Test", "test\IS4\Aguacongas.IdentityServer.Http.Store.IS4.Test\Aguacongas.IdentityServer.Http.Store.IS4.Test.csproj", "{64575302-7B16-4D72-843F-A21974019E9C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.KeysRotation.IS4.Test", "test\IS4\Aguacongas.IdentityServer.KeysRotation.IS4.Test\Aguacongas.IdentityServer.KeysRotation.IS4.Test.csproj", "{1A5F6B6A-7A69-4DD8-B876-533289BB77AD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.MongoDb.Store.IS4.Test", "test\IS4\Aguacongas.IdentityServer.MongoDb.Store.IS4.Test\Aguacongas.IdentityServer.MongoDb.Store.IS4.Test.csproj", "{D40F44AE-6E5F-4539-8F2F-B6195E990999}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.RavenDb.Store.IS4.Test", "test\IS4\Aguacongas.IdentityServer.RavenDb.Store.IS4.Test\Aguacongas.IdentityServer.RavenDb.Store.IS4.Test.csproj", "{245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Authentication.Integration.IS4.Test", "test\IS4\Aguacongas.TheIdServer.Authentication.Integration.IS4.Test\Aguacongas.TheIdServer.Authentication.Integration.IS4.Test.csproj", "{9F47A8BC-AE06-4C67-84DA-839A56DF90E3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Identity.Integration.IS4.Test", "test\IS4\Aguacongas.TheIdServer.Identity.Integration.IS4.Test\Aguacongas.TheIdServer.Identity.Integration.IS4.Test.csproj", "{510BCD40-F459-46C6-BDA9-55218E8F8331}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Identity.IS4.Test", "test\IS4\Aguacongas.TheIdServer.Identity.IS4.Test\Aguacongas.TheIdServer.Identity.IS4.Test.csproj", "{015BCB1C-12AC-4EB0-9F5C-A71967930E80}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.IS4.Test", "test\IS4\Aguacongas.TheIdServer.IS4.Test\Aguacongas.TheIdServer.IS4.Test.csproj", "{84E4DB36-5174-4F98-B5D0-362ADECEF70D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.IS4.Test", "test\IS4\Aguacongas.IdentityServer.Admin.IS4.Test\Aguacongas.IdentityServer.Admin.IS4.Test.csproj", "{9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Admin.Duende.Test", "test\Duende\Aguacongas.IdentityServer.Admin.Duende.Test\Aguacongas.IdentityServer.Admin.Duende.Test.csproj", "{3DB1F008-627B-4BED-8FA2-501B60D727BA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.EntityFramework.Store.Duende.Test", "test\Duende\Aguacongas.IdentityServer.EntityFramework.Store.Duende.Test\Aguacongas.IdentityServer.EntityFramework.Store.Duende.Test.csproj", "{52074749-B16F-456A-B13B-58100EECCA32}"
@@ -293,24 +211,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Iden
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Identity.Integration.Duende.Test", "test\Duende\Aguacongas.TheIdServer.Identity.Integration.Duende.Test\Aguacongas.TheIdServer.Identity.Integration.Duende.Test.csproj", "{234C1401-2A11-473D-AE3A-7242A4A8F5D5}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Integration.IS4.Test", "test\IS4\Aguacongas.TheIdServer.Integration.IS4.Test\Aguacongas.TheIdServer.Integration.IS4.Test.csproj", "{680C8124-EED7-4F15-B17B-7D6F910B95DC}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Integration.Duende.Test", "test\Duende\Aguacongas.TheIdServer.Integration.Duende.Test\Aguacongas.TheIdServer.Integration.Duende.Test.csproj", "{1FE59FB5-B6D7-4458-B1A8-6BB93A123637}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.BlazorApp.Pages.Settings", "src\BlazorApp\Aguacongas.TheIdServer.BlazorApp.Pages.Settings\Aguacongas.TheIdServer.BlazorApp.Pages.Settings.csproj", "{B201ABE6-567B-41E9-B5D4-3472CEB0C497}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.CibaSample", "sample\Aguacongas.TheIdServer.CibaSample\Aguacongas.TheIdServer.CibaSample.csproj", "{492835F1-7E60-4EEC-A22C-6B71C216DCF9}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Test.Shared", "test\Shared\Aguacongas.IdentityServer.Test.Shared\Aguacongas.IdentityServer.Test.Shared.csproj", "{A349BB89-5465-43FE-842A-CF15AAEBA942}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.IS4.Test", "test\IS4\Aguacongas.IdentityServer.IS4.Test\Aguacongas.IdentityServer.IS4.Test.csproj", "{D323D938-8DE0-4571-BDB8-590582CB731A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Duende.Test", "test\Duende\Aguacongas.IdentityServer.Duende.Test\Aguacongas.IdentityServer.Duende.Test.csproj", "{76B12AC6-03A6-4619-A4B3-5BA8A02FDD6F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.Test", "test\Aguacongas.TheIdServer.Test\Aguacongas.TheIdServer.Test.csproj", "{0900433A-77B6-4DDC-8BF4-CEDB438313E5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.TheIdServer.MtlsSample", "sample\Aguacongas.TheIdServer.MtlsSample\Aguacongas.TheIdServer.MtlsSample.csproj", "{9404EA66-AC32-49DD-A17C-1A48E04B7973}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Saml2p.Duende", "src\IdentityServer\Duende\Aguacongas.IdentityServer.Saml2p.Duende\Aguacongas.IdentityServer.Saml2p.Duende.csproj", "{B44A1F03-8E0E-4A0C-845B-37A9B87B2637}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aguacongas.IdentityServer.Saml2P.Duende.Test", "test\Duende\Aguacongas.IdentityServer.Saml2P.Duende.Test\Aguacongas.IdentityServer.Saml2P.Duende.Test.csproj", "{23ABCB0D-8C39-46D7-9CD1-508A3358AC00}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1029,30 +945,6 @@ Global
{5E930A54-0AA1-4053-AFBD-319914929634}.Release|x64.Build.0 = Release|Any CPU
{5E930A54-0AA1-4053-AFBD-319914929634}.Release|x86.ActiveCfg = Release|Any CPU
{5E930A54-0AA1-4053-AFBD-319914929634}.Release|x86.Build.0 = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|x64.Build.0 = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Debug|x86.Build.0 = Debug|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|Any CPU.Build.0 = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|x64.ActiveCfg = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|x64.Build.0 = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|x86.ActiveCfg = Release|Any CPU
- {1FE07D46-7548-463A-993E-8B1B5AF90533}.Release|x86.Build.0 = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|x64.Build.0 = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Debug|x86.Build.0 = Debug|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|Any CPU.Build.0 = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|x64.ActiveCfg = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|x64.Build.0 = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|x86.ActiveCfg = Release|Any CPU
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA}.Release|x86.Build.0 = Release|Any CPU
{D600300A-285D-4CB1-AC59-FFA435091C99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D600300A-285D-4CB1-AC59-FFA435091C99}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D600300A-285D-4CB1-AC59-FFA435091C99}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1065,54 +957,6 @@ Global
{D600300A-285D-4CB1-AC59-FFA435091C99}.Release|x64.Build.0 = Release|Any CPU
{D600300A-285D-4CB1-AC59-FFA435091C99}.Release|x86.ActiveCfg = Release|Any CPU
{D600300A-285D-4CB1-AC59-FFA435091C99}.Release|x86.Build.0 = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|x64.Build.0 = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Debug|x86.Build.0 = Debug|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|Any CPU.Build.0 = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|x64.ActiveCfg = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|x64.Build.0 = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|x86.ActiveCfg = Release|Any CPU
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9}.Release|x86.Build.0 = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|x64.Build.0 = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Debug|x86.Build.0 = Debug|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|x64.ActiveCfg = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|x64.Build.0 = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|x86.ActiveCfg = Release|Any CPU
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F}.Release|x86.Build.0 = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|x64.Build.0 = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Debug|x86.Build.0 = Debug|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|Any CPU.Build.0 = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|x64.ActiveCfg = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|x64.Build.0 = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|x86.ActiveCfg = Release|Any CPU
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F}.Release|x86.Build.0 = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|x64.Build.0 = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Debug|x86.Build.0 = Debug|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|Any CPU.Build.0 = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|x64.ActiveCfg = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|x64.Build.0 = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|x86.ActiveCfg = Release|Any CPU
- {B5898F12-9EBD-4272-9D83-927601EE0941}.Release|x86.Build.0 = Release|Any CPU
{7E9CA585-F6BA-4268-BA27-357FDE181553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E9CA585-F6BA-4268-BA27-357FDE181553}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E9CA585-F6BA-4268-BA27-357FDE181553}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1137,30 +981,6 @@ Global
{7604E039-945D-4682-8277-79F26B02DE0E}.Release|x64.Build.0 = Release|Any CPU
{7604E039-945D-4682-8277-79F26B02DE0E}.Release|x86.ActiveCfg = Release|Any CPU
{7604E039-945D-4682-8277-79F26B02DE0E}.Release|x86.Build.0 = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|x64.Build.0 = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Debug|x86.Build.0 = Debug|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|Any CPU.Build.0 = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|x64.ActiveCfg = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|x64.Build.0 = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|x86.ActiveCfg = Release|Any CPU
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3}.Release|x86.Build.0 = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|x64.Build.0 = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Debug|x86.Build.0 = Debug|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|Any CPU.Build.0 = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|x64.ActiveCfg = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|x64.Build.0 = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|x86.ActiveCfg = Release|Any CPU
- {73B34C90-ADAB-4167-869D-E1BFF057C45B}.Release|x86.Build.0 = Release|Any CPU
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1173,30 +993,6 @@ Global
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Release|x64.Build.0 = Release|Any CPU
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Release|x86.ActiveCfg = Release|Any CPU
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3}.Release|x86.Build.0 = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|x64.Build.0 = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Debug|x86.Build.0 = Debug|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|x64.ActiveCfg = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|x64.Build.0 = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|x86.ActiveCfg = Release|Any CPU
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0}.Release|x86.Build.0 = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|x64.ActiveCfg = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|x64.Build.0 = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|x86.ActiveCfg = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Debug|x86.Build.0 = Debug|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|Any CPU.Build.0 = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|x64.ActiveCfg = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|x64.Build.0 = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|x86.ActiveCfg = Release|Any CPU
- {23F487DA-93A6-4D8B-A634-CCE7419E6165}.Release|x86.Build.0 = Release|Any CPU
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1209,30 +1005,6 @@ Global
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Release|x64.Build.0 = Release|Any CPU
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Release|x86.ActiveCfg = Release|Any CPU
{E6E3E332-5E21-4F9F-8163-3E88320439C9}.Release|x86.Build.0 = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|x64.Build.0 = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Debug|x86.Build.0 = Debug|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|x64.ActiveCfg = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|x64.Build.0 = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|x86.ActiveCfg = Release|Any CPU
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD}.Release|x86.Build.0 = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|x64.Build.0 = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Debug|x86.Build.0 = Debug|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|Any CPU.Build.0 = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|x64.ActiveCfg = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|x64.Build.0 = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|x86.ActiveCfg = Release|Any CPU
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A}.Release|x86.Build.0 = Release|Any CPU
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1245,30 +1017,6 @@ Global
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Release|x64.Build.0 = Release|Any CPU
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Release|x86.ActiveCfg = Release|Any CPU
{1B388FE8-44AD-4117-A646-8DABF32EB6F1}.Release|x86.Build.0 = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|x64.Build.0 = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Debug|x86.Build.0 = Debug|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|Any CPU.Build.0 = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|x64.ActiveCfg = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|x64.Build.0 = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|x86.ActiveCfg = Release|Any CPU
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B}.Release|x86.Build.0 = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|x64.ActiveCfg = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|x64.Build.0 = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|x86.ActiveCfg = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Debug|x86.Build.0 = Debug|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|Any CPU.Build.0 = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|x64.ActiveCfg = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|x64.Build.0 = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|x86.ActiveCfg = Release|Any CPU
- {925AC605-6847-461D-8311-9A306F718A47}.Release|x86.Build.0 = Release|Any CPU
{9741622E-2995-4ECC-9469-162191277D39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9741622E-2995-4ECC-9469-162191277D39}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9741622E-2995-4ECC-9469-162191277D39}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1293,30 +1041,6 @@ Global
{CA8876CD-3AE5-4621-B797-9B5816D9CD48}.Release|x64.Build.0 = Release|Any CPU
{CA8876CD-3AE5-4621-B797-9B5816D9CD48}.Release|x86.ActiveCfg = Release|Any CPU
{CA8876CD-3AE5-4621-B797-9B5816D9CD48}.Release|x86.Build.0 = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|x64.ActiveCfg = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|x64.Build.0 = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Debug|x86.Build.0 = Debug|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|Any CPU.Build.0 = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|x64.ActiveCfg = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|x64.Build.0 = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|x86.ActiveCfg = Release|Any CPU
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E}.Release|x86.Build.0 = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|x64.ActiveCfg = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|x64.Build.0 = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|x86.ActiveCfg = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Debug|x86.Build.0 = Debug|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|Any CPU.Build.0 = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|x64.ActiveCfg = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|x64.Build.0 = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|x86.ActiveCfg = Release|Any CPU
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449}.Release|x86.Build.0 = Release|Any CPU
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1329,258 +1053,6 @@ Global
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Release|x64.Build.0 = Release|Any CPU
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Release|x86.ActiveCfg = Release|Any CPU
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB}.Release|x86.Build.0 = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|x64.Build.0 = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Debug|x86.Build.0 = Debug|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|Any CPU.Build.0 = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|x64.ActiveCfg = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|x64.Build.0 = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|x86.ActiveCfg = Release|Any CPU
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3}.Release|x86.Build.0 = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|x64.Build.0 = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Debug|x86.Build.0 = Debug|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|x64.ActiveCfg = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|x64.Build.0 = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|x86.ActiveCfg = Release|Any CPU
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C}.Release|x86.Build.0 = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|x64.Build.0 = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Debug|x86.Build.0 = Debug|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|Any CPU.Build.0 = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|x64.ActiveCfg = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|x64.Build.0 = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|x86.ActiveCfg = Release|Any CPU
- {9012AE43-B700-4E06-A883-F7475EC1DDB8}.Release|x86.Build.0 = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|x64.ActiveCfg = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|x64.Build.0 = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|x86.ActiveCfg = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Debug|x86.Build.0 = Debug|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|Any CPU.Build.0 = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|x64.ActiveCfg = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|x64.Build.0 = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|x86.ActiveCfg = Release|Any CPU
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754}.Release|x86.Build.0 = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|x64.Build.0 = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Debug|x86.Build.0 = Debug|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|x64.ActiveCfg = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|x64.Build.0 = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|x86.ActiveCfg = Release|Any CPU
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F}.Release|x86.Build.0 = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|x64.Build.0 = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Debug|x86.Build.0 = Debug|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|x64.ActiveCfg = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|x64.Build.0 = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|x86.ActiveCfg = Release|Any CPU
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E}.Release|x86.Build.0 = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|x64.Build.0 = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Debug|x86.Build.0 = Debug|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|x64.ActiveCfg = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|x64.Build.0 = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|x86.ActiveCfg = Release|Any CPU
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11}.Release|x86.Build.0 = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|x64.ActiveCfg = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|x64.Build.0 = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Debug|x86.Build.0 = Debug|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|Any CPU.Build.0 = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|x64.ActiveCfg = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|x64.Build.0 = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|x86.ActiveCfg = Release|Any CPU
- {7EE67579-AB69-40EE-8F47-631D447E5B14}.Release|x86.Build.0 = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|x64.ActiveCfg = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|x64.Build.0 = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Debug|x86.Build.0 = Debug|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|Any CPU.Build.0 = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|x64.ActiveCfg = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|x64.Build.0 = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|x86.ActiveCfg = Release|Any CPU
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE}.Release|x86.Build.0 = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|x64.Build.0 = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Debug|x86.Build.0 = Debug|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|Any CPU.Build.0 = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|x64.ActiveCfg = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|x64.Build.0 = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|x86.ActiveCfg = Release|Any CPU
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1}.Release|x86.Build.0 = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|x64.ActiveCfg = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|x64.Build.0 = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|x86.ActiveCfg = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Debug|x86.Build.0 = Debug|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|Any CPU.Build.0 = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|x64.ActiveCfg = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|x64.Build.0 = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|x86.ActiveCfg = Release|Any CPU
- {21FD10C3-3660-4729-9A70-E82699BB41B4}.Release|x86.Build.0 = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|x64.Build.0 = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Debug|x86.Build.0 = Debug|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|x64.ActiveCfg = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|x64.Build.0 = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|x86.ActiveCfg = Release|Any CPU
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936}.Release|x86.Build.0 = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|x64.Build.0 = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Debug|x86.Build.0 = Debug|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|Any CPU.Build.0 = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|x64.ActiveCfg = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|x64.Build.0 = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|x86.ActiveCfg = Release|Any CPU
- {64575302-7B16-4D72-843F-A21974019E9C}.Release|x86.Build.0 = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|x64.Build.0 = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Debug|x86.Build.0 = Debug|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|x64.ActiveCfg = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|x64.Build.0 = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|x86.ActiveCfg = Release|Any CPU
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD}.Release|x86.Build.0 = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|x64.Build.0 = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Debug|x86.Build.0 = Debug|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|Any CPU.Build.0 = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|x64.ActiveCfg = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|x64.Build.0 = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|x86.ActiveCfg = Release|Any CPU
- {D40F44AE-6E5F-4539-8F2F-B6195E990999}.Release|x86.Build.0 = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|x64.Build.0 = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Debug|x86.Build.0 = Debug|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|x64.ActiveCfg = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|x64.Build.0 = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|x86.ActiveCfg = Release|Any CPU
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3}.Release|x86.Build.0 = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|x64.Build.0 = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Debug|x86.Build.0 = Debug|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|Any CPU.Build.0 = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|x64.ActiveCfg = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|x64.Build.0 = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|x86.ActiveCfg = Release|Any CPU
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3}.Release|x86.Build.0 = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|x64.ActiveCfg = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|x64.Build.0 = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|x86.ActiveCfg = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Debug|x86.Build.0 = Debug|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|Any CPU.Build.0 = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|x64.ActiveCfg = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|x64.Build.0 = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|x86.ActiveCfg = Release|Any CPU
- {510BCD40-F459-46C6-BDA9-55218E8F8331}.Release|x86.Build.0 = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|x64.ActiveCfg = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|x64.Build.0 = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|x86.ActiveCfg = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Debug|x86.Build.0 = Debug|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|Any CPU.Build.0 = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|x64.ActiveCfg = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|x64.Build.0 = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|x86.ActiveCfg = Release|Any CPU
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80}.Release|x86.Build.0 = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|x64.Build.0 = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Debug|x86.Build.0 = Debug|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|Any CPU.Build.0 = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|x64.ActiveCfg = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|x64.Build.0 = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|x86.ActiveCfg = Release|Any CPU
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D}.Release|x86.Build.0 = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|x64.Build.0 = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Debug|x86.Build.0 = Debug|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|x64.ActiveCfg = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|x64.Build.0 = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|x86.ActiveCfg = Release|Any CPU
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA}.Release|x86.Build.0 = Release|Any CPU
{3DB1F008-627B-4BED-8FA2-501B60D727BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DB1F008-627B-4BED-8FA2-501B60D727BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DB1F008-627B-4BED-8FA2-501B60D727BA}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1701,18 +1173,6 @@ Global
{234C1401-2A11-473D-AE3A-7242A4A8F5D5}.Release|x64.Build.0 = Release|Any CPU
{234C1401-2A11-473D-AE3A-7242A4A8F5D5}.Release|x86.ActiveCfg = Release|Any CPU
{234C1401-2A11-473D-AE3A-7242A4A8F5D5}.Release|x86.Build.0 = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|x64.ActiveCfg = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|x64.Build.0 = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|x86.ActiveCfg = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Debug|x86.Build.0 = Debug|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|Any CPU.Build.0 = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|x64.ActiveCfg = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|x64.Build.0 = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|x86.ActiveCfg = Release|Any CPU
- {680C8124-EED7-4F15-B17B-7D6F910B95DC}.Release|x86.Build.0 = Release|Any CPU
{1FE59FB5-B6D7-4458-B1A8-6BB93A123637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FE59FB5-B6D7-4458-B1A8-6BB93A123637}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FE59FB5-B6D7-4458-B1A8-6BB93A123637}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1749,30 +1209,6 @@ Global
{492835F1-7E60-4EEC-A22C-6B71C216DCF9}.Release|x64.Build.0 = Release|Any CPU
{492835F1-7E60-4EEC-A22C-6B71C216DCF9}.Release|x86.ActiveCfg = Release|Any CPU
{492835F1-7E60-4EEC-A22C-6B71C216DCF9}.Release|x86.Build.0 = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|x64.Build.0 = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Debug|x86.Build.0 = Debug|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|Any CPU.Build.0 = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|x64.ActiveCfg = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|x64.Build.0 = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|x86.ActiveCfg = Release|Any CPU
- {A349BB89-5465-43FE-842A-CF15AAEBA942}.Release|x86.Build.0 = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|x64.Build.0 = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Debug|x86.Build.0 = Debug|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|Any CPU.Build.0 = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|x64.ActiveCfg = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|x64.Build.0 = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|x86.ActiveCfg = Release|Any CPU
- {D323D938-8DE0-4571-BDB8-590582CB731A}.Release|x86.Build.0 = Release|Any CPU
{76B12AC6-03A6-4619-A4B3-5BA8A02FDD6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76B12AC6-03A6-4619-A4B3-5BA8A02FDD6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76B12AC6-03A6-4619-A4B3-5BA8A02FDD6F}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1809,6 +1245,30 @@ Global
{9404EA66-AC32-49DD-A17C-1A48E04B7973}.Release|x64.Build.0 = Release|Any CPU
{9404EA66-AC32-49DD-A17C-1A48E04B7973}.Release|x86.ActiveCfg = Release|Any CPU
{9404EA66-AC32-49DD-A17C-1A48E04B7973}.Release|x86.Build.0 = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|x64.Build.0 = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Debug|x86.Build.0 = Debug|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|x64.ActiveCfg = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|x64.Build.0 = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|x86.ActiveCfg = Release|Any CPU
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637}.Release|x86.Build.0 = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|x64.Build.0 = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Debug|x86.Build.0 = Debug|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|Any CPU.Build.0 = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|x64.ActiveCfg = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|x64.Build.0 = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|x86.ActiveCfg = Release|Any CPU
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1879,57 +1339,16 @@ Global
{5DD4CFFB-D038-4E12-AA1E-B190699C273D} = {8A3B91E5-02A3-42F0-B2E7-E419B5086FFA}
{5E930A54-0AA1-4053-AFBD-319914929634} = {98BBB159-779B-497B-927B-723592E84860}
{C6E07186-85C0-4243-BE03-66BEA518B81C} = {DF368D6C-D11F-49F9-BF41-090AE1D10C6D}
- {281BCCF6-2EA9-480B-8527-31C0AE8732B8} = {DF368D6C-D11F-49F9-BF41-090AE1D10C6D}
- {0570B25A-576D-4EE2-BD3E-149ECA956DF1} = {DF368D6C-D11F-49F9-BF41-090AE1D10C6D}
- {1FE07D46-7548-463A-993E-8B1B5AF90533} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {D083F8F5-AF10-4D07-8743-C9DB2516F2BA} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{D600300A-285D-4CB1-AC59-FFA435091C99} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
- {913A6E8C-8E43-4EAE-B793-271CF5A91FB9} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {EE0F3688-0F89-47A2-B2A3-66A941B0197F} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
- {35FE5B0D-F0D8-4DAF-9AC0-D206E2781D1F} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {B5898F12-9EBD-4272-9D83-927601EE0941} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{7E9CA585-F6BA-4268-BA27-357FDE181553} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
{7604E039-945D-4682-8277-79F26B02DE0E} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
- {1663AD74-C7CE-4C15-AE06-959BFF54FBB3} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {73B34C90-ADAB-4167-869D-E1BFF057C45B} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{48EA4477-C775-4F1C-BEBE-96CE8ADAC4A3} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
- {EEC89F96-85E7-47A5-8245-8927F86EA0E0} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {23F487DA-93A6-4D8B-A634-CCE7419E6165} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{E6E3E332-5E21-4F9F-8163-3E88320439C9} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
- {3B3EAA4B-4517-4826-86D1-2EBF717BAADD} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {4BF69395-D0BD-43AC-8B25-2A78C485D60A} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{1B388FE8-44AD-4117-A646-8DABF32EB6F1} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
- {6B62A0F5-8098-4CB0-9F46-1E895E85254B} = {0570B25A-576D-4EE2-BD3E-149ECA956DF1}
- {925AC605-6847-461D-8311-9A306F718A47} = {281BCCF6-2EA9-480B-8527-31C0AE8732B8}
{9741622E-2995-4ECC-9469-162191277D39} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
{CA8876CD-3AE5-4621-B797-9B5816D9CD48} = {DF545B54-78FB-42D0-A842-A1490A579B37}
- {74F9657E-8FB8-4D58-A5B3-15E1BAD7563E} = {DF545B54-78FB-42D0-A842-A1490A579B37}
- {389F0881-25F1-4EC8-AA20-B6E2FE6C6449} = {DF545B54-78FB-42D0-A842-A1490A579B37}
{E0AC0DEB-82E3-4C00-B9EE-42932A94E8FB} = {DF545B54-78FB-42D0-A842-A1490A579B37}
- {175EFB99-30E9-45E9-9ED6-F48D88F67C19} = {DE50F426-4409-4573-8502-93364ED12E0C}
- {12227AAB-94C7-4CE3-907D-2EBBF2660FEE} = {DE50F426-4409-4573-8502-93364ED12E0C}
{51A14B0A-FEBA-4941-A114-A7AAB132CDBA} = {DE50F426-4409-4573-8502-93364ED12E0C}
- {E202F809-08D3-4EBC-AD85-A475CBABBFF3} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {F1705E2F-207E-41E7-8218-9C0A4A0DFA2C} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {9012AE43-B700-4E06-A883-F7475EC1DDB8} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {308ECEC8-D688-46EC-80D5-2C4CFDD42754} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {72F41E60-3260-40F0-9485-CEAC5FB6EE5F} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {FEA93C51-FE7D-4AD2-BA69-93079CDC177E} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {C5239184-EFC8-40EA-8E85-221CA7EB5D11} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {7EE67579-AB69-40EE-8F47-631D447E5B14} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {DE298EF3-5A38-4BED-AD72-BFE024F0F2DE} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {874CEC6B-3F91-417D-9B5F-D3C9A299E1D1} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {21FD10C3-3660-4729-9A70-E82699BB41B4} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {9D21E6D9-A8D8-4D47-B445-DB352CF99936} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {64575302-7B16-4D72-843F-A21974019E9C} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {1A5F6B6A-7A69-4DD8-B876-533289BB77AD} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {D40F44AE-6E5F-4539-8F2F-B6195E990999} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {245A35B5-5F00-4DD6-B234-ACEAD8ABC1B3} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {9F47A8BC-AE06-4C67-84DA-839A56DF90E3} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {510BCD40-F459-46C6-BDA9-55218E8F8331} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {015BCB1C-12AC-4EB0-9F5C-A71967930E80} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {84E4DB36-5174-4F98-B5D0-362ADECEF70D} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
- {9D75BFC4-C846-4018-9F35-9AB3DCF85BEA} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
{3DB1F008-627B-4BED-8FA2-501B60D727BA} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{52074749-B16F-456A-B13B-58100EECCA32} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{64348D0D-500D-4686-8E0A-F6AB852F89E6} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
@@ -1940,15 +1359,14 @@ Global
{89FE83D6-D88A-4A62-B422-67BEA4BAFDBA} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{4AC7F21B-0EF1-4F9A-A0FB-7ED877954CDF} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{234C1401-2A11-473D-AE3A-7242A4A8F5D5} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
- {680C8124-EED7-4F15-B17B-7D6F910B95DC} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
{1FE59FB5-B6D7-4458-B1A8-6BB93A123637} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{B201ABE6-567B-41E9-B5D4-3472CEB0C497} = {8A3B91E5-02A3-42F0-B2E7-E419B5086FFA}
{492835F1-7E60-4EEC-A22C-6B71C216DCF9} = {98BBB159-779B-497B-927B-723592E84860}
- {A349BB89-5465-43FE-842A-CF15AAEBA942} = {175EFB99-30E9-45E9-9ED6-F48D88F67C19}
- {D323D938-8DE0-4571-BDB8-590582CB731A} = {12227AAB-94C7-4CE3-907D-2EBBF2660FEE}
{76B12AC6-03A6-4619-A4B3-5BA8A02FDD6F} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
{0900433A-77B6-4DDC-8BF4-CEDB438313E5} = {DE50F426-4409-4573-8502-93364ED12E0C}
{9404EA66-AC32-49DD-A17C-1A48E04B7973} = {98BBB159-779B-497B-927B-723592E84860}
+ {B44A1F03-8E0E-4A0C-845B-37A9B87B2637} = {C6E07186-85C0-4243-BE03-66BEA518B81C}
+ {23ABCB0D-8C39-46D7-9CD1-508A3358AC00} = {51A14B0A-FEBA-4941-A114-A7AAB132CDBA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5283BE0B-F6F2-4458-B12F-64C78CFF8CBA}
diff --git a/appveyor.yml b/appveyor.yml
index c892ff751..7b77c7bef 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -13,20 +13,21 @@ services:
- mongodb
environment:
GITHUB_TOKEN:
- secure: aV5flJ5BOs49dlM4XRpu7t1qa+ajMD5L4hhwlBOv+zff/NlSkdnrmk5nYNsIJCdE
- donetsdk: 7.0.100
+ secure: /o9VAhx5ewGmdLR9qcgFJMzBaCuzOmGlsXAHu7khUJLdQzsv4gJzLUfYDghcRPHd
+ donetsdk: 7.0.202
JAVA_HOME: C:\Program Files\Java\jdk14
PATH: $(JAVA_HOME)\bin;$(PATH)
init:
- cmd: git config --global core.autocrlf true
install:
- ps: Install-Product node ''
- - ps: .\dotnet-install.ps1 -Version 6.0.9 -Runtime dotnet -Architecture x64 -InstallDir "C:\Program Files\dotnet"
- - ps: .\dotnet-install.ps1 -Version 6.0.9 -Runtime aspnetcore -Architecture x64 -InstallDir "C:\Program Files\dotnet"
+ - ps: .\dotnet-install.ps1 -Version 6.0.11 -Runtime dotnet -Architecture x64 -InstallDir "C:\Program Files\dotnet"
+ - ps: .\dotnet-install.ps1 -Version 6.0.11 -Runtime aspnetcore -Architecture x64 -InstallDir "C:\Program Files\dotnet"
- ps: .\dotnet-install.ps1 -Version $env:donetsdk -InstallDir "C:\Program Files\dotnet"
- ps: dotnet tool install --global GitVersion.Tool
- ps: dotnet gitversion /l console /output buildserver
- ps: dotnet tool install --global dotnet-sonarscanner
+ - ps: dotnet workload restore
- cmd: nuget install ReportGenerator -ExcludeVersion
- cmd: nuget install redis-64 -excludeversion
- cmd: redis-64\tools\redis-server.exe --service-install
@@ -47,7 +48,7 @@ artifacts:
deploy:
- provider: NuGet
api_key:
- secure: bvkKhXIKsDM1ThfcWTbuusND0sOBiDoJGOoD2fYijGoj4C9xx22QKfR7Y9q+j7eX
+ secure: L5Ol2yiygLW8nUF6j5/rwx4feonMPly+S69GjoX1ilEUklPMixlX5RW2l8FJScNK
on:
branch:
- /^preview\/\d+.\d+.\d+$/
diff --git a/build.ps1 b/build.ps1
index c355d2de7..4f8196668 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,9 +21,9 @@ elseif ($env:APPVEYOR_REPO_BRANCH) {
Write-Host "dotnet sonarscanner begin /k:aguacongas_TheIdServer -o:aguacongas -d:sonar.host.url=https://sonarcloud.io -d:sonar.login=****** -d:sonar.coverageReportPaths=coverage\SonarQube.xml $prArgs -v:$env:Version"
dotnet sonarscanner begin /k:aguacongas_TheIdServer -o:aguacongas -d:sonar.host.url=https://sonarcloud.io -d:sonar.login=$env:sonarqube -d:sonar.coverageReportPaths=coverage\SonarQube.xml $prArgs -v:$env:Version
-Write-Host "dotnet test -c Release --settings coverletArgs.runsettings --filter FullyQualifiedName!~MongoDb"
+Write-Host "dotnet test -c Release --settings coverletArgs.runsettings"
-dotnet test -c Release --blame --blame-hang-timeout 5m --collect:"XPlat Code Coverage" --settings coverletArgs.runsettings --filter "FullyQualifiedName!~MongoDb" -v q
+dotnet test -c Release --blame --blame-hang-timeout 5m --collect:"XPlat Code Coverage" --settings coverletArgs.runsettings -v q
if ($LASTEXITCODE -ne 0) {
$result = $LASTEXITCODE
diff --git a/clean.ps1 b/clean.ps1
index 4fddd6ef2..620ad2f8f 100644
--- a/clean.ps1
+++ b/clean.ps1
@@ -1,3 +1,9 @@
+Get-ChildItem -rec `
+| Where-Object { $_.Name.StartsWith("Aguacongas - Backup") } `
+| ForEach-Object {
+ Remove-Item $_.FullName
+}
+
Get-ChildItem -rec `
| Where-Object { $_.Name -eq "obj" } `
| ForEach-Object {
diff --git a/doc/SAML2P.md b/doc/SAML2P.md
new file mode 100644
index 000000000..39638f37e
--- /dev/null
+++ b/doc/SAML2P.md
@@ -0,0 +1,15 @@
+# Configure a SAML 2.0 client
+
+
+
+The client id is the issuer.
+
+## Encryption certificate, signature algorithm, name id format
+
+Associate your client with relying party to configure an encryption certificate, a signature algorithm and/or the name id format.
+
+## ACS Artifact
+
+Add the property *UseAcsArtifact* with value *true* to use ACS artifact.
+
+
\ No newline at end of file
diff --git a/doc/assets/SAML2p.jpeg b/doc/assets/SAML2p.jpeg
new file mode 100644
index 000000000..02a6e6a19
Binary files /dev/null and b/doc/assets/SAML2p.jpeg differ
diff --git a/doc/assets/UseAcsArtifact.jpeg b/doc/assets/UseAcsArtifact.jpeg
new file mode 100644
index 000000000..c18126caf
Binary files /dev/null and b/doc/assets/UseAcsArtifact.jpeg differ
diff --git a/doc/assets/home.png b/doc/assets/home.png
index 375471e54..82ad630c0 100644
Binary files a/doc/assets/home.png and b/doc/assets/home.png differ
diff --git a/doc/saml2-xsd/saml-schema-dce-2.0.xsd b/doc/saml2-xsd/saml-schema-dce-2.0.xsd
new file mode 100644
index 000000000..e89be866a
--- /dev/null
+++ b/doc/saml2-xsd/saml-schema-dce-2.0.xsd
@@ -0,0 +1,29 @@
+
+
+
+
+ Document identifier: saml-schema-dce-2.0
+ Location: http://docs.oasis-open.org/security/saml/v2.0/
+ Revision history:
+ V2.0 (March, 2005):
+ Custom schema for DCE attribute profile, first published in SAML 2.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/saml2-xsd/saml-schema-ecp-2.0.xsd b/doc/saml2-xsd/saml-schema-ecp-2.0.xsd
new file mode 100644
index 000000000..e3f24b9a5
--- /dev/null
+++ b/doc/saml2-xsd/saml-schema-ecp-2.0.xsd
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+ Document identifier: saml-schema-ecp-2.0
+ Location: http://docs.oasis-open.org/security/saml/v2.0/
+ Revision history:
+ V2.0 (March, 2005):
+ Custom schema for ECP profile, first published in SAML 2.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/saml2-xsd/saml-schema-metadata-2.0.xsd b/doc/saml2-xsd/saml-schema-metadata-2.0.xsd
new file mode 100644
index 000000000..923b598bf
--- /dev/null
+++ b/doc/saml2-xsd/saml-schema-metadata-2.0.xsd
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+
+
+ Document identifier: saml-schema-metadata-2.0
+ Location: http://docs.oasis-open.org/security/saml/v2.0/
+ Revision history:
+ V2.0 (March, 2005):
+ Schema for SAML metadata, first published in SAML 2.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/saml2-xsd/saml-schema-x500-2.0.xsd b/doc/saml2-xsd/saml-schema-x500-2.0.xsd
new file mode 100644
index 000000000..f67f1b04a
--- /dev/null
+++ b/doc/saml2-xsd/saml-schema-x500-2.0.xsd
@@ -0,0 +1,20 @@
+
+
+
+
+ Document identifier: saml-schema-x500-2.0
+ Location: http://docs.oasis-open.org/security/saml/v2.0/
+ Revision history:
+ V2.0 (March, 2005):
+ Custom schema for X.500 attribute profile, first published in SAML 2.0.
+
+
+
+
+
diff --git a/doc/saml2-xsd/saml-schema-xacml-2.0.xsd b/doc/saml2-xsd/saml-schema-xacml-2.0.xsd
new file mode 100644
index 000000000..836f9db04
--- /dev/null
+++ b/doc/saml2-xsd/saml-schema-xacml-2.0.xsd
@@ -0,0 +1,19 @@
+
+
+
+
+ Document identifier: saml-schema-xacml-2.0
+ Location: http://docs.oasis-open.org/security/saml/v2.0/
+ Revision history:
+ V2.0 (March, 2005):
+ Custom schema for XACML attribute profile, first published in SAML 2.0.
+
+
+
+
diff --git a/global.json b/global.json
deleted file mode 100644
index 08585a2b3..000000000
--- a/global.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "sdk": {
- "version": "7.0.100"
- }
-}
\ No newline at end of file
diff --git a/publish.ps1 b/publish.ps1
index e03c44cd6..41c284e0e 100644
--- a/publish.ps1
+++ b/publish.ps1
@@ -1,13 +1,14 @@
+Write-Host $env:APPVEYOR $env:APPVEYOR_PULL_REQUEST_NUMBER
+
+if ($env:APPVEYOR -and $env:APPVEYOR_PULL_REQUEST_NUMBER) {
+ exit 0
+}
+
$fileversion = "$env:SemVer.0"
$path = (Get-Location).Path
dotnet pack -c Release -o $path\artifacts\build -p:Version=$env:Version -p:FileVersion=$fileversion -p:SourceRevisionId=$env:APPVEYOR_REPO_COMMIT
-dotnet publish src\Aguacongas.TheIdServer.IS4\Aguacongas.TheIdServer.IS4.csproj -c Release -o $path\artifacts\Aguacongas.TheIdServer.IS4 -p:Version=$env:Version -p:FileVersion=$fileversion -p:SourceRevisionId=$env:APPVEYOR_REPO_COMMIT
-if ($LASTEXITCODE -ne 0) {
- throw "publis failed src/Aguacongas.TheIdServer/Aguacongas.TheIdServer.IS4.csproj"
-}
-
dotnet publish src\Aguacongas.TheIdServer.Duende\Aguacongas.TheIdServer.Duende.csproj -c Release -o $path\artifacts\Aguacongas.TheIdServer.Duende -p:Version=$env:Version -p:FileVersion=$fileversion -p:SourceRevisionId=$env:APPVEYOR_REPO_COMMIT
if ($LASTEXITCODE -ne 0) {
throw "publis failed src/Aguacongas.TheIdServer/Aguacongas.TheIdServer.Duende.csproj"
@@ -18,6 +19,5 @@ if ($LASTEXITCODE -ne 0) {
throw "publish failed src/Aguacongas.TheIdServer.BlazorApp/Aguacongas.TheIdServer.BlazorApp.csproj"
}
-7z a $path\artifacts\build\Aguacongas.TheIdServer.IS4.$env:version.zip $path\artifacts\Aguacongas.TheIdServer.IS4
7z a $path\artifacts\build\Aguacongas.TheIdServer.Duende.$env:version.zip $path\artifacts\Aguacongas.TheIdServer.Duende
7z a $path\artifacts\build\Aguacongas.TheIdServer.BlazorApp$env:version.zip $path\artifacts\Aguacongas.TheIdServer.BlazorApp
diff --git a/sample/Aguacongas.TheIdServer.ApiSample/Aguacongas.TheIdServer.ApiSample.csproj b/sample/Aguacongas.TheIdServer.ApiSample/Aguacongas.TheIdServer.ApiSample.csproj
index 628261499..9afc2e1e7 100644
--- a/sample/Aguacongas.TheIdServer.ApiSample/Aguacongas.TheIdServer.ApiSample.csproj
+++ b/sample/Aguacongas.TheIdServer.ApiSample/Aguacongas.TheIdServer.ApiSample.csproj
@@ -17,11 +17,9 @@
-
+
-
-
-
+
diff --git a/sample/Aguacongas.TheIdServer.ApiSample/Controllers/WeatherForecastController.cs b/sample/Aguacongas.TheIdServer.ApiSample/Controllers/WeatherForecastController.cs
index 102040e4b..7b48abb89 100644
--- a/sample/Aguacongas.TheIdServer.ApiSample/Controllers/WeatherForecastController.cs
+++ b/sample/Aguacongas.TheIdServer.ApiSample/Controllers/WeatherForecastController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
diff --git a/sample/Aguacongas.TheIdServer.ApiSample/Extensions/ApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.ApiSample/Extensions/ApplicationBuilderExtensions.cs
index 2b9fc2c15..1474fe8fa 100644
--- a/sample/Aguacongas.TheIdServer.ApiSample/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.ApiSample/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
diff --git a/sample/Aguacongas.TheIdServer.ApiSample/Extensions/WebApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.ApiSample/Extensions/WebApplicationBuilderExtensions.cs
index 20c6a76fc..6ef94d8b7 100644
--- a/sample/Aguacongas.TheIdServer.ApiSample/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.ApiSample/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,9 +1,8 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
-using IdentityServer4.AccessTokenValidation;
using Microsoft.Extensions.DependencyInjection;
-using System;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
namespace Microsoft.AspNetCore.Builder
{
@@ -16,16 +15,12 @@ public static WebApplicationBuilder AddApiSample(this WebApplicationBuilder webA
.AddAuthorization()
.AddControllers();
- services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
- .AddIdentityServerAuthentication(options =>
+ services
+ .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
+ .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
options.Authority = "https://localhost:5443";
- options.RequireHttpsMetadata = false;
- options.SupportedTokens = SupportedTokens.Both;
- options.ApiName = "api1";
- options.EnableCaching = true;
- options.CacheDuration = TimeSpan.FromMinutes(10);
- options.LegacyAudienceValidation = true;
+ options.Audience = "api1";
});
return webApplicationBuilder;
diff --git a/sample/Aguacongas.TheIdServer.ApiSample/Program.cs b/sample/Aguacongas.TheIdServer.ApiSample/Program.cs
index 40459c5d1..71643c412 100644
--- a/sample/Aguacongas.TheIdServer.ApiSample/Program.cs
+++ b/sample/Aguacongas.TheIdServer.ApiSample/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Serilog;
diff --git a/sample/Aguacongas.TheIdServer.CibaSample/Aguacongas.TheIdServer.CibaSample.csproj b/sample/Aguacongas.TheIdServer.CibaSample/Aguacongas.TheIdServer.CibaSample.csproj
index 34f10f1fd..26e1577da 100644
--- a/sample/Aguacongas.TheIdServer.CibaSample/Aguacongas.TheIdServer.CibaSample.csproj
+++ b/sample/Aguacongas.TheIdServer.CibaSample/Aguacongas.TheIdServer.CibaSample.csproj
@@ -6,8 +6,13 @@
enable
enable
false
+ ..\..\.sonarlint\aguacongas_theidservercsharp.ruleset
+
+
+
+
diff --git a/sample/Aguacongas.TheIdServer.ClientCredentialSample/Program.cs b/sample/Aguacongas.TheIdServer.ClientCredentialSample/Program.cs
index 0a5cf8ed7..416b37069 100644
--- a/sample/Aguacongas.TheIdServer.ClientCredentialSample/Program.cs
+++ b/sample/Aguacongas.TheIdServer.ClientCredentialSample/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel.Client;
using System;
using System.Net.Http;
diff --git a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/Aguacongas.TheIdServer.CustomClaimsProviders.csproj b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/Aguacongas.TheIdServer.CustomClaimsProviders.csproj
index 8ae74909f..a1b266e9a 100644
--- a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/Aguacongas.TheIdServer.CustomClaimsProviders.csproj
+++ b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/Aguacongas.TheIdServer.CustomClaimsProviders.csproj
@@ -3,6 +3,7 @@
net7.0
false
+ True
..\..\.sonarlint\aguacongas_theidservercsharp.ruleset
@@ -11,12 +12,12 @@
-
+
-
-
-
+
+
+
diff --git a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/ClaimsProvidersSetup.cs b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/ClaimsProvidersSetup.cs
index f4f85c399..fe43a7f95 100644
--- a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/ClaimsProvidersSetup.cs
+++ b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/ClaimsProvidersSetup.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.Abstractions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
diff --git a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/MapClaimsProvider.cs b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/MapClaimsProvider.cs
index 569c0936c..6ce16536e 100644
--- a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/MapClaimsProvider.cs
+++ b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/MapClaimsProvider.cs
@@ -1,7 +1,7 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.Abstractions;
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
diff --git a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/WebServiceClaimsProvider.cs b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/WebServiceClaimsProvider.cs
index bb8767262..3dcc9b2f0 100644
--- a/sample/Aguacongas.TheIdServer.CustomClaimsProvider/WebServiceClaimsProvider.cs
+++ b/sample/Aguacongas.TheIdServer.CustomClaimsProvider/WebServiceClaimsProvider.cs
@@ -1,7 +1,7 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.Abstractions;
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
diff --git a/sample/Aguacongas.TheIdServer.DeviceFlowSample/Aguacongas.TheIdServer.DeviceFlowSample.csproj b/sample/Aguacongas.TheIdServer.DeviceFlowSample/Aguacongas.TheIdServer.DeviceFlowSample.csproj
index 12d7b2377..3871eaae6 100644
--- a/sample/Aguacongas.TheIdServer.DeviceFlowSample/Aguacongas.TheIdServer.DeviceFlowSample.csproj
+++ b/sample/Aguacongas.TheIdServer.DeviceFlowSample/Aguacongas.TheIdServer.DeviceFlowSample.csproj
@@ -20,7 +20,7 @@
-
+
diff --git a/sample/Aguacongas.TheIdServer.DeviceFlowSample/Program.cs b/sample/Aguacongas.TheIdServer.DeviceFlowSample/Program.cs
index a76607ab4..09e4a723e 100644
--- a/sample/Aguacongas.TheIdServer.DeviceFlowSample/Program.cs
+++ b/sample/Aguacongas.TheIdServer.DeviceFlowSample/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel;
using IdentityModel.Client;
using Newtonsoft.Json.Linq;
diff --git a/sample/Aguacongas.TheIdServer.MtlsSample/Aguacongas.TheIdServer.MtlsSample.csproj b/sample/Aguacongas.TheIdServer.MtlsSample/Aguacongas.TheIdServer.MtlsSample.csproj
index 2c6ff39d8..13f08d14d 100644
--- a/sample/Aguacongas.TheIdServer.MtlsSample/Aguacongas.TheIdServer.MtlsSample.csproj
+++ b/sample/Aguacongas.TheIdServer.MtlsSample/Aguacongas.TheIdServer.MtlsSample.csproj
@@ -6,8 +6,13 @@
enable
enable
false
+ ..\..\.sonarlint\aguacongas_theidservercsharp.ruleset
+
+
+
+
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Aguacongas.TheIdServer.MvcClient.csproj b/sample/Aguacongas.TheIdServer.MvcClient/Aguacongas.TheIdServer.MvcClient.csproj
index 0987d1971..2fb00d610 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Aguacongas.TheIdServer.MvcClient.csproj
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Aguacongas.TheIdServer.MvcClient.csproj
@@ -19,11 +19,9 @@
-
+
-
-
-
+
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Controllers/HomeController.cs b/sample/Aguacongas.TheIdServer.MvcClient/Controllers/HomeController.cs
index dd4c04c5b..833e4e47c 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Controllers/HomeController.cs
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Controllers/HomeController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.MvcClient.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Extensions/ApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.MvcClient/Extensions/ApplicationBuilderExtensions.cs
index 06e09dae9..480231460 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Extensions/WebApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.MvcClient/Extensions/WebApplicationBuilderExtensions.cs
index 4b7cf4933..53e86ed97 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel.Client;
using Microsoft.AspNetCore.Authentication;
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Models/ErrorViewModel.cs b/sample/Aguacongas.TheIdServer.MvcClient/Models/ErrorViewModel.cs
index 64617eab5..62bf444e9 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Models/ErrorViewModel.cs
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Models/ErrorViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace Aguacongas.TheIdServer.MvcClient.Models
{
public class ErrorViewModel
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Program.cs b/sample/Aguacongas.TheIdServer.MvcClient/Program.cs
index c9b79a6a3..d94fd3f45 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Program.cs
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Serilog;
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Index.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Index.cshtml
index ec54aa211..015ed6fec 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Index.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Index.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
ViewData["Title"] = "Home Page";
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Privacy.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Privacy.cshtml
index eb5b592c2..b08adc9fa 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Privacy.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/Home/Privacy.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
ViewData["Title"] = "Privacy Policy";
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/Error.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/Error.cshtml
index 660d0e2a2..00b83428c 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/Error.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/Error.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model ErrorViewModel
@{
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_Layout.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_Layout.cshtml
index feb510988..0ae5f66ae 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_Layout.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_Layout.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_ValidationScriptsPartial.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_ValidationScriptsPartial.cshtml
index 99a7bfcca..16b1198ea 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_ValidationScriptsPartial.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/Shared/_ValidationScriptsPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewImports.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewImports.cshtml
index f44898bba..4bb009f2e 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewImports.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Aguacongas.TheIdServer.MvcClient
@using Aguacongas.TheIdServer.MvcClient.Models
diff --git a/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewStart.cshtml b/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewStart.cshtml
index 61a75348d..beaf31b1d 100644
--- a/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewStart.cshtml
+++ b/sample/Aguacongas.TheIdServer.MvcClient/Views/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
Layout = "_Layout";
diff --git a/sample/Aguacongas.TheIdServer.Sample.Shared/WeatherForecast.cs b/sample/Aguacongas.TheIdServer.Sample.Shared/WeatherForecast.cs
index e04089372..f713ed7cf 100644
--- a/sample/Aguacongas.TheIdServer.Sample.Shared/WeatherForecast.cs
+++ b/sample/Aguacongas.TheIdServer.Sample.Shared/WeatherForecast.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
namespace Aguacongas.TheIdServer.ApiSample
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Aguacongas.TheIdServer.WsFederationSample.csproj b/sample/Aguacongas.TheIdServer.WsFederationSample/Aguacongas.TheIdServer.WsFederationSample.csproj
index 315e5f88a..4012afab6 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Aguacongas.TheIdServer.WsFederationSample.csproj
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Aguacongas.TheIdServer.WsFederationSample.csproj
@@ -11,11 +11,9 @@
-
+
-
-
-
+
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/AccountController.cs b/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/AccountController.cs
index d3496a3c5..c16f343db 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/AccountController.cs
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/AccountController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.WsFederation;
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/HomeController.cs b/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/HomeController.cs
index 2ede49c81..57613a049 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/HomeController.cs
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Controllers/HomeController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/ApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/ApplicationBuilderExtensions.cs
index 0bccc55a4..b65afca22 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace Microsoft.AspNetCore.Builder
{
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/WebApplicationBuilderExtensions.cs b/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/WebApplicationBuilderExtensions.cs
index 5dd085e88..438b063ae 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.WsFederation;
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Program.cs b/sample/Aguacongas.TheIdServer.WsFederationSample/Program.cs
index 71dac2b2f..42d5c3133 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Program.cs
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Serilog;
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Index.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Index.cshtml
index 0e041a1ef..1e59f7f4b 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Index.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Index.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
ViewData["Title"] = "Home Page";
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Secure.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Secure.cshtml
index 85d72f0de..6457ad6f1 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Secure.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Home/Secure.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Microsoft.AspNetCore.Authentication
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_Layout.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_Layout.cshtml
index d8c2aaf0b..f66f0a322 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_Layout.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_Layout.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_ValidationScriptsPartial.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_ValidationScriptsPartial.cshtml
index b47e469d3..d0a5f500e 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_ValidationScriptsPartial.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/Shared/_ValidationScriptsPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewImports.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewImports.cshtml
index aaadff140..d19ba3b62 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewImports.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Aguacongas.TheIdServer.WsFederationSample
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewStart.cshtml b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewStart.cshtml
index 61a75348d..beaf31b1d 100644
--- a/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewStart.cshtml
+++ b/sample/Aguacongas.TheIdServer.WsFederationSample/Views/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
Layout = "_Layout";
diff --git a/sample/Aguacongas.TheIdentityServer.SpaSample/Aguacongas.TheIdentityServer.SpaSample.csproj b/sample/Aguacongas.TheIdentityServer.SpaSample/Aguacongas.TheIdentityServer.SpaSample.csproj
index 9a57d3a8e..bfa63cda0 100644
--- a/sample/Aguacongas.TheIdentityServer.SpaSample/Aguacongas.TheIdentityServer.SpaSample.csproj
+++ b/sample/Aguacongas.TheIdentityServer.SpaSample/Aguacongas.TheIdentityServer.SpaSample.csproj
@@ -18,10 +18,10 @@
-
-
-
-
+
+
+
+
diff --git a/sample/Aguacongas.TheIdentityServer.SpaSample/ClaimsPrincipalFactory.cs b/sample/Aguacongas.TheIdentityServer.SpaSample/ClaimsPrincipalFactory.cs
index cacd36104..41ef53d42 100644
--- a/sample/Aguacongas.TheIdentityServer.SpaSample/ClaimsPrincipalFactory.cs
+++ b/sample/Aguacongas.TheIdentityServer.SpaSample/ClaimsPrincipalFactory.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal;
using Microsoft.Extensions.Logging;
diff --git a/sample/Aguacongas.TheIdentityServer.SpaSample/Program.cs b/sample/Aguacongas.TheIdentityServer.SpaSample/Program.cs
index df51c7762..aa0391b8e 100644
--- a/sample/Aguacongas.TheIdentityServer.SpaSample/Program.cs
+++ b/sample/Aguacongas.TheIdentityServer.SpaSample/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Microsoft.Extensions.Configuration;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Aguacongas.TheIdServer.Api.csproj b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Aguacongas.TheIdServer.Api.csproj
index b308e04b8..f10b51c46 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Aguacongas.TheIdServer.Api.csproj
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Aguacongas.TheIdServer.Api.csproj
@@ -5,7 +5,8 @@
false
3d7ce8dc-f8b3-4d0a-967c-7d1aeead003e
Linux
-
+ True
+
Aguacongas.TheIdServer.Api.ruleset
@@ -38,28 +39,24 @@
1701;1702;NU1603
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/ApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/ApplicationBuilderExtensions.cs
index b15ddf2ca..172a32a39 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Admin.Hubs;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/WebApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/WebApplicationBuilderExtensions.cs
index 69cf5bd4f..740407a7e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,10 +1,11 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.Admin.Services;
using Aguacongas.IdentityServer.Store;
using Aguacongas.TheIdServer.Authentication;
using Aguacongas.TheIdServer.Data;
using Aguacongas.TheIdServer.Models;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.ResponseCompression;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
@@ -55,38 +56,23 @@ public static WebApplicationBuilder AddTheIdServerApi(this WebApplicationBuilder
.AddIdentityServerAdmin();
services.AddAuthorization(options =>
- {
- options.AddPolicy(SharedConstants.WRITERPOLICY, policy =>
- {
- policy.RequireAssertion(context =>
- context.User.IsInRole(SharedConstants.WRITERPOLICY));
- });
- options.AddPolicy(SharedConstants.READERPOLICY, policy =>
{
- policy.RequireAssertion(context =>
- context.User.IsInRole(SharedConstants.READERPOLICY));
- });
- })
- .AddAuthentication("Bearer")
- .AddIdentityServerAuthentication("Bearer", options =>
- {
- options.Authority = "https://localhost:7443";
- options.RequireHttpsMetadata = false;
- options.SupportedTokens = IdentityServer4.AccessTokenValidation.SupportedTokens.Both;
- options.ApiName = "theidserveradminapi";
- options.ApiSecret = "5b556f7c-b3bc-4b5b-85ab-45eed0cb962d";
- options.EnableCaching = true;
- options.CacheDuration = TimeSpan.FromMinutes(10);
- options.LegacyAudienceValidation = true;
+ options.AddPolicy(SharedConstants.WRITERPOLICY, policy =>
+ {
+ policy.RequireAssertion(context =>
+ context.User.IsInRole(SharedConstants.WRITERPOLICY));
+ });
+ options.AddPolicy(SharedConstants.READERPOLICY, policy =>
+ {
+ policy.RequireAssertion(context =>
+ context.User.IsInRole(SharedConstants.READERPOLICY));
+ });
})
- .AddDynamic()
- .AddGoogle()
- .AddFacebook()
- .AddOpenIdConnect()
- .AddTwitter()
- .AddMicrosoftAccount()
- .AddOAuth("OAuth", options =>
+ .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
+ .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
+ options.Authority = "https://localhost:7443";
+ options.Audience = "theidserveradminapi";
});
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Program.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Program.cs
index 35a99b0cc..a77b94044 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Api/Program.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Api/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Serilog;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Aguacongas.TheIdServer.Private.csproj b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Aguacongas.TheIdServer.Private.csproj
index 71e8d4717..ea05b74b8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Aguacongas.TheIdServer.Private.csproj
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Aguacongas.TheIdServer.Private.csproj
@@ -26,39 +26,36 @@
1701;1702;NU1603
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/IdentityHostingStartup.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/IdentityHostingStartup.cs
index 429ea67e5..ae712572c 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/IdentityHostingStartup.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/IdentityHostingStartup.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.Extensions.DependencyInjection;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
index 8dabd039a..d10d960aa 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model ConfirmEmailModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
index ce5e0d649..263890128 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml
index 49717511a..31cc632a5 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model RegisterModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml.cs
index 5d936d839..5d3f01301 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/Register.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
index ec784e41d..ea94da5c6 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model RegisterConfirmationModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
index 3f21c1b31..1e78a2bb8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_StatusMessage.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_StatusMessage.cshtml
index e753b0f6a..a703f3e07 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_StatusMessage.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_StatusMessage.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model string
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_ViewImports.cshtml
index efcea9222..fb5244579 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/Account/_ViewImports.cshtml
@@ -1,5 +1,5 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Aguacongas.TheIdServer.Areas.Identity.Pages.Account
\ No newline at end of file
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
index bfd9c944b..d1b4d0bd8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewImports.cshtml
index 3b35880a1..960b41a85 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Microsoft.AspNetCore.Identity
@using Aguacongas.TheIdServer.Areas.Identity
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewStart.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewStart.cshtml
index 2165833f2..cfbc7b3f4 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewStart.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Pages/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/AuthMessageSenderOptions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/AuthMessageSenderOptions.cs
index 70901c17f..a8ac2e605 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/AuthMessageSenderOptions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/AuthMessageSenderOptions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace Aguacongas.TheIdServer.Areas.Identity
{
public class AuthMessageSenderOptions
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/EmailSender.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/EmailSender.cs
index 05549eba6..79bb62803 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/EmailSender.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Areas/Identity/Services/EmailSender.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.Extensions.Options;
using SendGrid;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Config.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Config.cs
index 95519f7f2..8e14fc7d8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Config.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Config.cs
@@ -1,9 +1,8 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Models;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Models;
using System.Collections.Generic;
-using System.Security.Claims;
-using static IdentityServer4.IdentityServerConstants;
+using static Duende.IdentityServer.IdentityServerConstants;
namespace Aguacongas.TheIdServer
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/ApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/ApplicationBuilderExtensions.cs
index eb8e363ac..3a537fb22 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Authentication;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/AuthorizationOptionsExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/AuthorizationOptionsExtensions.cs
index 9c252de59..2b7402bb5 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/AuthorizationOptionsExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/AuthorizationOptionsExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.Store;
namespace Microsoft.AspNetCore.Authorization
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/SameSiteCookiesServiceCollectionExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/SameSiteCookiesServiceCollectionExtensions.cs
index 4f62c9605..5a25702bf 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/SameSiteCookiesServiceCollectionExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/SameSiteCookiesServiceCollectionExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/WebApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/WebApplicationBuilderExtensions.cs
index e6e043f1e..890d19af3 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,32 +1,26 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer;
using Aguacongas.IdentityServer.Abstractions;
using Aguacongas.IdentityServer.Admin.Options;
using Aguacongas.IdentityServer.Admin.Services;
-using Aguacongas.IdentityServer.EntityFramework.Store;
using Aguacongas.TheIdServer.Authentication;
using Aguacongas.TheIdServer.Data;
using Aguacongas.TheIdServer.Models;
using IdentityModel.AspNetCore.OAuth2Introspection;
-using IdentityServer4.AccessTokenValidation;
using IdentityServerHost.Quickstart.UI;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
-using Serilog;
using System;
using System.Net.Http;
-using System.Reflection;
+using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Builder
{
@@ -76,8 +70,10 @@ public static WebApplicationBuilder AddTheIdServerPrivate(this WebApplicationBui
services.AddAuthorization(options =>
options.AddIdentityServerPolicies())
- .AddAuthentication()
- .AddIdentityServerAuthentication(JwtBearerDefaults.AuthenticationScheme, ConfigureIdentityServerAuthenticationOptions(configuration));
+ .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
+ .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, ConfigureIdentityServerJwtBearerOptions(configuration))
+ // reference tokens
+ .AddOAuth2Introspection("introspection", options => ConfigureIdentityServerOAuth2IntrospectionOptions(options, configuration));
services.Configure(configuration)
.AddLocalization()
@@ -99,14 +95,14 @@ public static WebApplicationBuilder AddTheIdServerPrivate(this WebApplicationBui
return webApplicationBuilder;
}
- private static Action ConfigureIdentityServerAuthenticationOptions(IConfiguration configuration)
+ private static Action ConfigureIdentityServerJwtBearerOptions(IConfiguration configuration)
{
return options =>
{
configuration.GetSection("ApiAuthentication").Bind(options);
if (configuration.GetValue("DisableStrictSsl"))
{
- options.JwtBackChannelHandler = new HttpClientHandler
+ options.BackchannelHttpHandler = new HttpClientHandler
{
#pragma warning disable S4830 // Server certificates should be verified during SSL/TLS connections
ServerCertificateCustomValidationCallback = (message, cert, chain, policy) => true
@@ -114,27 +110,84 @@ private static Action ConfigureIdentityServ
};
}
- static string tokenRetriever(HttpRequest request)
+ options.Audience = configuration["ApiAuthentication:ApiName"];
+ options.Events = new JwtBearerEvents
{
- var path = request.Path;
- var accessToken = TokenRetrieval.FromQueryString()(request);
- if (path.StartsWithSegments("/providerhub") && !string.IsNullOrEmpty(accessToken))
+ OnMessageReceived = context =>
{
- return accessToken;
+ var request = context.HttpContext.Request;
+ var path = request.Path;
+ var accessToken = TokenRetrieval.FromQueryString()(request);
+ if (path.StartsWithSegments("/providerhub") && !string.IsNullOrEmpty(accessToken))
+ {
+ context.Token = accessToken;
+ return Task.CompletedTask;
+ }
+ var oneTimeToken = TokenRetrieval.FromQueryString("otk")(request);
+ if (!string.IsNullOrEmpty(oneTimeToken))
+ {
+ context.Token = request.HttpContext
+ .RequestServices
+ .GetRequiredService()
+ .ConsumeOneTimeToken(oneTimeToken);
+ return Task.CompletedTask;
+ }
+ context.Token = TokenRetrieval.FromAuthorizationHeader()(request);
+ return Task.CompletedTask;
}
- var oneTimeToken = TokenRetrieval.FromQueryString("otk")(request);
- if (!string.IsNullOrEmpty(oneTimeToken))
+ };
+
+ options.ForwardDefaultSelector = context =>
+ {
+ var request = context.Request;
+ var token = TokenRetrieval.FromAuthorizationHeader()(request) ?? TokenRetrieval.FromQueryString()(request);
+ if (string.IsNullOrEmpty(token))
{
- return request.HttpContext
- .RequestServices
- .GetRequiredService()
- .GetOneTimeToken(oneTimeToken);
+ var otk = TokenRetrieval.FromQueryString("otk")(request);
+ if (otk == null)
+ {
+ return null;
+ }
+ token = request.HttpContext
+ .RequestServices
+ .GetRequiredService()
+ .GetOneTimeToken(otk);
+ }
+
+ if (token?.Contains('.') == false)
+ {
+ return "introspection";
}
- return TokenRetrieval.FromAuthorizationHeader()(request);
- }
- options.TokenRetriever = tokenRetriever;
+ return null;
+ };
};
}
+
+ private static void ConfigureIdentityServerOAuth2IntrospectionOptions(OAuth2IntrospectionOptions options, IConfiguration configuration)
+ {
+ configuration.Bind("ApiAuthentication", options);
+ options.ClientId = configuration.GetValue("ApiAuthentication:ApiName");
+ options.ClientSecret = configuration.GetValue("ApiAuthentication:ApiSecret");
+ static string tokenRetriever(HttpRequest request)
+ {
+ var path = request.Path;
+ var accessToken = TokenRetrieval.FromQueryString()(request);
+ if (path.StartsWithSegments("/providerhub") && !string.IsNullOrEmpty(accessToken))
+ {
+ return accessToken;
+ }
+ var oneTimeToken = TokenRetrieval.FromQueryString("otk")(request);
+ if (!string.IsNullOrEmpty(oneTimeToken))
+ {
+ return request.HttpContext
+ .RequestServices
+ .GetRequiredService()
+ .ConsumeOneTimeToken(oneTimeToken);
+ }
+ return TokenRetrieval.FromAuthorizationHeader()(request);
+ }
+ options.TokenRetriever = tokenRetriever;
+ }
}
}
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Program.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Program.cs
index 56992a476..713b25db3 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Program.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountController.cs
index ae7bcb0c0..4347e89ff 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountController.cs
@@ -1,11 +1,11 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
@@ -15,6 +15,7 @@
using System.Linq;
using System.Threading.Tasks;
using Aguacongas.TheIdServer.Models;
+using Microsoft.Extensions.DependencyInjection;
namespace IdentityServerHost.Quickstart.UI
{
@@ -215,7 +216,7 @@ private async Task BuildLoginViewModelAsync(string returnUrl)
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
if (context?.IdP != null && await _schemeProvider.GetSchemeAsync(context.IdP) != null)
{
- var local = context.IdP == IdentityServer4.IdentityServerConstants.LocalIdentityProvider;
+ var local = context.IdP == Duende.IdentityServer.IdentityServerConstants.LocalIdentityProvider;
// this is meant to short circuit the UI and only trigger the one external IdP
var vm = new LoginViewModel
@@ -317,9 +318,12 @@ private async Task BuildLoggedOutViewModelAsync(string logou
if (User?.Identity.IsAuthenticated == true)
{
var idp = User.FindFirst(JwtClaimTypes.IdentityProvider)?.Value;
- if (idp != null && idp != IdentityServer4.IdentityServerConstants.LocalIdentityProvider)
+ if (idp != null && idp != Duende.IdentityServer.IdentityServerConstants.LocalIdentityProvider)
{
- var providerSupportsSignout = await HttpContext.GetSchemeSupportsSignOutAsync(idp);
+ var provider = HttpContext.RequestServices.GetRequiredService();
+ var handler = await provider.GetHandlerAsync(HttpContext, idp);
+ var providerSupportsSignout = handler is IAuthenticationSignOutHandler;
+
if (providerSupportsSignout)
{
if (vm.LogoutId == null)
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountOptions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountOptions.cs
index a69849fdd..fc66264b4 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountOptions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/AccountOptions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalController.cs
index ea0b49913..878f8cc9a 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,10 +7,10 @@
using System.Threading.Tasks;
using Aguacongas.TheIdServer.Models;
using IdentityModel;
-using IdentityServer4;
-using IdentityServer4.Events;
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+using Duende.IdentityServer;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalProvider.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalProvider.cs
index b17e05598..6b1286dd0 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalProvider.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/ExternalProvider.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class ExternalProvider
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/InvalidReturnUrlException.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/InvalidReturnUrlException.cs
index 7354c8bff..d4aa6f918 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/InvalidReturnUrlException.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/InvalidReturnUrlException.cs
@@ -1,9 +1,9 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Runtime.Serialization;
-namespace IdentityServer4.Quickstart.UI
+namespace Duende.IdentityServer.Quickstart.UI
{
///
/// Trowed when user click on malicious link
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoggedOutViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoggedOutViewModel.cs
index 367061aa2..689c978d9 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoggedOutViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoggedOutViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class LoggedOutViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginInputModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginInputModel.cs
index ef4ec3045..ae6b1c6ca 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginInputModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginInputModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System.ComponentModel.DataAnnotations;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginViewModel.cs
index 080c60844..ea0901e60 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LoginViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutInputModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutInputModel.cs
index 59bea1514..836588886 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutInputModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutInputModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class LogoutInputModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutViewModel.cs
index 7ba7f98b5..8738e4d7c 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/LogoutViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class LogoutViewModel : LogoutInputModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/RedirectViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/RedirectViewModel.cs
index 4876249d4..2d7c1c628 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/RedirectViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Account/RedirectViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class RedirectViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentController.cs
index 35d60790f..ba9c8a4d7 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentController.cs
@@ -1,15 +1,15 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Events;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Extensions;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;
-using IdentityServer4.Validation;
+using Duende.IdentityServer.Validation;
using System.Collections.Generic;
using System;
@@ -118,7 +118,7 @@ private async Task ProcessConsent(ConsentInputModel model)
var scopes = model.ScopesConsented;
if (ConsentOptions.EnableOfflineAccess == false)
{
- scopes = scopes.Where(x => x != IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess);
+ scopes = scopes.Where(x => x != Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess);
}
grantedConsent = new ConsentResponse
@@ -206,7 +206,7 @@ private ConsentViewModel CreateConsentViewModel(
}
if (ConsentOptions.EnableOfflineAccess && request.ValidatedResources.Resources.OfflineAccess)
{
- apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
+ apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
}
vm.ApiScopes = apiScopes;
@@ -249,7 +249,7 @@ private ScopeViewModel GetOfflineAccessScope(bool check)
{
return new ScopeViewModel
{
- Value = IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess,
+ Value = Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess,
DisplayName = ConsentOptions.OfflineAccessDisplayName,
Description = ConsentOptions.OfflineAccessDescription,
Emphasize = true,
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentInputModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentInputModel.cs
index b4e331909..5b083c224 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentInputModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentInputModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System.Collections.Generic;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentOptions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentOptions.cs
index 7e597488c..e0e245a01 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentOptions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentOptions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class ConsentOptions
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentViewModel.cs
index 2949075bf..ac114d4ac 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ConsentViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System.Collections.Generic;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ProcessConsentResult.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ProcessConsentResult.cs
index b8802a3a9..17c456bd4 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ProcessConsentResult.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ProcessConsentResult.cs
@@ -1,6 +1,6 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Models;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Models;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ScopeViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ScopeViewModel.cs
index f2639eb22..1502dccda 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ScopeViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Consent/ScopeViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class ScopeViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationInputModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationInputModel.cs
index bd1937d6b..8f27b9fef 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationInputModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationInputModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class DeviceAuthorizationInputModel : ConsentInputModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationViewModel.cs
index f6887fa83..704605747 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceAuthorizationViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace IdentityServerHost.Quickstart.UI
{
public class DeviceAuthorizationViewModel : ConsentViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceController.cs
index 8e99e2503..48aa2f927 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Device/DeviceController.cs
@@ -1,15 +1,15 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
-using IdentityServer4.Configuration;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Validation;
+using Duende.IdentityServer.Configuration;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Validation;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
@@ -100,7 +100,7 @@ private async Task ProcessConsent(DeviceAuthorizationInput
var scopes = model.ScopesConsented;
if (ConsentOptions.EnableOfflineAccess == false)
{
- scopes = scopes.Where(x => x != IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess);
+ scopes = scopes.Where(x => x != Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess);
}
grantedConsent = new ConsentResponse
@@ -182,7 +182,7 @@ private DeviceAuthorizationViewModel CreateConsentViewModel(string userCode, Dev
}
if (ConsentOptions.EnableOfflineAccess && request.ValidatedResources.Resources.OfflineAccess)
{
- apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
+ apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
}
vm.ApiScopes = apiScopes;
@@ -219,7 +219,7 @@ private ScopeViewModel GetOfflineAccessScope(bool check)
{
return new ScopeViewModel
{
- Value = IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess,
+ Value = Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess,
DisplayName = ConsentOptions.OfflineAccessDisplayName,
Description = ConsentOptions.OfflineAccessDescription,
Emphasize = true,
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsController.cs
index 375356cbe..a5c6fce56 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsController.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsViewModel.cs
index b474592ba..3f473d6dd 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Diagnostics/DiagnosticsViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Newtonsoft.Json;
@@ -14,14 +14,15 @@ public DiagnosticsViewModel(AuthenticateResult result)
{
AuthenticateResult = result;
- if (result.Properties.Items.ContainsKey("client_list"))
+ if(!result.Properties.Items.TryGetValue("client_list", out string encoded))
{
- var encoded = result.Properties.Items["client_list"];
- var bytes = Base64Url.Decode(encoded);
- var value = Encoding.UTF8.GetString(bytes);
-
- Clients = JsonConvert.DeserializeObject(value);
+ return;
}
+
+ var bytes = Base64Url.Decode(encoded);
+ var value = Encoding.UTF8.GetString(bytes);
+
+ Clients = JsonConvert.DeserializeObject(value);
}
public AuthenticateResult AuthenticateResult { get; }
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Extensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Extensions.cs
index 31e2b1a2f..583aad87d 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Extensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Extensions.cs
@@ -1,7 +1,7 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
using Microsoft.AspNetCore.Mvc;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsController.cs
index ee30d2e53..b30f3df47 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsController.cs
@@ -1,14 +1,14 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsViewModel.cs
index e036852d9..e5465e8bf 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Grants/GrantsViewModel.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Collections.Generic;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/ErrorViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/ErrorViewModel.cs
index e61e5222d..6fe9b3c4c 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/ErrorViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/ErrorViewModel.cs
@@ -1,6 +1,6 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Models;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Models;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/HomeController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/HomeController.cs
index 8db30be63..820c4958f 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/HomeController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/Home/HomeController.cs
@@ -1,6 +1,6 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
-using IdentityServer4.Services;
+// Copyright (c) 2023 @Olivier Lefebvre
+using Duende.IdentityServer.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/SecurityHeadersAttribute.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/SecurityHeadersAttribute.cs
index fbccb7df0..105fba76b 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/SecurityHeadersAttribute.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/SecurityHeadersAttribute.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/TestUsers.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/TestUsers.cs
index 27f62b2c9..c9af9b51e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/TestUsers.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Quickstart/TestUsers.cs
@@ -1,7 +1,7 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using IdentityModel;
-using IdentityServer4.Test;
+using Duende.IdentityServer.Test;
using System.Collections.Generic;
using System.Security.Claims;
@@ -20,7 +20,7 @@ public class TestUsers
new Claim(JwtClaimTypes.Email, "AliceSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://alice.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json)
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json)
}
},
new TestUser{SubjectId = "88421113", Username = "bob", Password = "bob",
@@ -32,7 +32,7 @@ public class TestUsers
new Claim(JwtClaimTypes.Email, "BobSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://bob.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json),
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json),
new Claim("location", "somewhere")
}
}
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/SeedData.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Private/SeedData.cs
index a541a7dcb..321d68150 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/SeedData.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/SeedData.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer.EntityFramework.Store;
using Aguacongas.IdentityServer.Store;
using Aguacongas.TheIdServer.Data;
@@ -77,7 +77,7 @@ private static void SeedApis(IServiceProvider provider)
}
}
- private static void SeedApiProperties(IAdminStore apiPropertyStore, IdentityServer4.Models.ApiResource resource)
+ private static void SeedApiProperties(IAdminStore apiPropertyStore, Duende.IdentityServer.Models.ApiResource resource)
{
foreach (var property in resource.Properties)
{
@@ -91,7 +91,7 @@ private static void SeedApiProperties(IAdminStore apiPropert
}
}
- private static void SeedApiApiScopes(IAdminStore apiApiScopeStore, IdentityServer4.Models.ApiResource resource)
+ private static void SeedApiApiScopes(IAdminStore apiApiScopeStore, Duende.IdentityServer.Models.ApiResource resource)
{
foreach (var apiScope in resource.Scopes)
{
@@ -104,7 +104,7 @@ private static void SeedApiApiScopes(IAdminStore apiApiScope
}
}
- private static void SeedApiSecrets(IAdminStore apiSecretStore, IdentityServer4.Models.ApiResource resource)
+ private static void SeedApiSecrets(IAdminStore apiSecretStore, Duende.IdentityServer.Models.ApiResource resource)
{
foreach (var secret in resource.ApiSecrets)
{
@@ -120,7 +120,7 @@ private static void SeedApiSecrets(IAdminStore apiSecretStore,
}
}
- private static void SeedApiClaims(IAdminStore apiClaimStore, IdentityServer4.Models.ApiResource resource)
+ private static void SeedApiClaims(IAdminStore apiClaimStore, Duende.IdentityServer.Models.ApiResource resource)
{
foreach (var claim in resource.UserClaims)
{
@@ -163,7 +163,7 @@ private static void SeedApiScopes(IServiceProvider provider)
}
}
- private static void SeedApiScopeProperties(IAdminStore apiScopePropertyStore, IdentityServer4.Models.ApiScope resource)
+ private static void SeedApiScopeProperties(IAdminStore apiScopePropertyStore, Duende.IdentityServer.Models.ApiScope resource)
{
foreach (var property in resource.Properties)
{
@@ -177,7 +177,7 @@ private static void SeedApiScopeProperties(IAdminStore
}
}
- private static void SeedApiScopeClaims(IAdminStore apiScopeClaimStore, IdentityServer4.Models.ApiScope resource)
+ private static void SeedApiScopeClaims(IAdminStore apiScopeClaimStore, Duende.IdentityServer.Models.ApiScope resource)
{
foreach (var claim in resource.UserClaims)
{
@@ -219,7 +219,7 @@ private static void SeedIdentities(IServiceProvider provider)
}
}
- private static void SeedIdentityProperties(IAdminStore identityPropertyStore, IdentityServer4.Models.IdentityResource resource)
+ private static void SeedIdentityProperties(IAdminStore identityPropertyStore, Duende.IdentityServer.Models.IdentityResource resource)
{
foreach (var property in resource.Properties)
{
@@ -233,7 +233,7 @@ private static void SeedIdentityProperties(IAdminStore
}
}
- private static void SeedIdentityClaims(IAdminStore identityClaimStore, IdentityServer4.Models.IdentityResource resource)
+ private static void SeedIdentityClaims(IAdminStore identityClaimStore, Duende.IdentityServer.Models.IdentityResource resource)
{
foreach (var claim in resource.UserClaims)
{
@@ -316,7 +316,7 @@ private static void SeedClients(IServiceProvider provider)
}
}
- private static void SeedClientUris(IAdminStore clientUriStore, IdentityServer4.Models.Client client)
+ private static void SeedClientUris(IAdminStore clientUriStore, Duende.IdentityServer.Models.Client client)
{
var uris = client.RedirectUris.Select(o => new Entity.ClientUri
{
@@ -374,7 +374,7 @@ private static void SeedClientUris(IAdminStore clientUriStore,
}
}
- private static void SeedClientProperties(IAdminStore clientPropertyStore, IdentityServer4.Models.Client client)
+ private static void SeedClientProperties(IAdminStore clientPropertyStore, Duende.IdentityServer.Models.Client client)
{
foreach (var property in client.Properties)
{
@@ -388,7 +388,7 @@ private static void SeedClientProperties(IAdminStore clie
}
}
- private static void SeedClientRestrictions(IAdminStore clientIdpRestrictionStore, IdentityServer4.Models.Client client)
+ private static void SeedClientRestrictions(IAdminStore clientIdpRestrictionStore, Duende.IdentityServer.Models.Client client)
{
foreach (var restriction in client.IdentityProviderRestrictions)
{
@@ -401,7 +401,7 @@ private static void SeedClientRestrictions(IAdminStore clientSecretStore, IdentityServer4.Models.Client client)
+ private static void SeedClientSecrets(IAdminStore clientSecretStore, Duende.IdentityServer.Models.Client client)
{
foreach (var secret in client.ClientSecrets)
{
@@ -417,7 +417,7 @@ private static void SeedClientSecrets(IAdminStore clientSec
}
}
- private static void SeedClientClaims(IAdminStore clientClaimStore, IdentityServer4.Models.Client client)
+ private static void SeedClientClaims(IAdminStore clientClaimStore, Duende.IdentityServer.Models.Client client)
{
foreach (var claim in client.Claims)
{
@@ -431,7 +431,7 @@ private static void SeedClientClaims(IAdminStore clientClaim
}
}
- private static void SeedClientScopes(IAdminStore clientScopeStore, IdentityServer4.Models.Client client)
+ private static void SeedClientScopes(IAdminStore clientScopeStore, Duende.IdentityServer.Models.Client client)
{
foreach (var clientScope in client.AllowedScopes)
{
@@ -444,7 +444,7 @@ private static void SeedClientScopes(IAdminStore clientScope
}
}
- private static void SeedClientGrantType(IAdminStore clientGrantTypeStore, IdentityServer4.Models.Client client)
+ private static void SeedClientGrantType(IAdminStore clientGrantTypeStore, Duende.IdentityServer.Models.Client client)
{
foreach (var grantType in client.AllowedGrantTypes)
{
@@ -497,7 +497,7 @@ public static void SeedUsers(IServiceScope scope)
new Claim(JwtClaimTypes.Email, "AliceSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://alice.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json)
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json)
})).GetAwaiter().GetResult();
ExcuteAndCheckResult(() => userMgr.AddToRolesAsync(alice, roles))
@@ -527,7 +527,7 @@ public static void SeedUsers(IServiceScope scope)
new Claim(JwtClaimTypes.Email, "BobSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://bob.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json),
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json),
new Claim("location", "somewhere")
})).GetAwaiter().GetResult();
ExcuteAndCheckResult(() => userMgr.AddToRoleAsync(bob, "Is4-Reader"))
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Home/Index.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Home/Index.cshtml
index 36b2bfc3a..71488fb50 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Home/Index.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Home/Index.cshtml
@@ -1,13 +1,13 @@
@using System.Diagnostics
@{
- var version = FileVersionInfo.GetVersionInfo(typeof(IdentityServer4.Hosting.IdentityServerMiddleware).Assembly.Location).ProductVersion.Split('+').First();
+ var version = FileVersionInfo.GetVersionInfo(typeof(Duende.IdentityServer.Hosting.IdentityServerMiddleware).Assembly.Location).ProductVersion.Split('+').First();
}
- Welcome to IdentityServer4
+ Welcome to Duende.IdentityServer
(version @version)
@@ -25,8 +25,8 @@
Here are links to the
- source code repository ,
- and ready to use samples .
+ source code repository ,
+ and ready to use samples .
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Error.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Error.cshtml
index aa0ca98fd..0e40e8679 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Error.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Error.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model ErrorViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Redirect.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Redirect.cshtml
index cec777b10..7c7dffd86 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Redirect.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/Redirect.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model RedirectViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Layout.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Layout.cshtml
index 81cb96fdc..46408e3e7 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Layout.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Layout.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@@ -9,7 +9,7 @@ Copyright (c) 2022 @Olivier Lefebvre
- IdentityServer4
+ Duende.IdentityServer
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_LoginPartial.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_LoginPartial.cshtml
index 5790c1649..eea6c2d8a 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_LoginPartial.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_LoginPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Microsoft.AspNetCore.Identity
@using Aguacongas.TheIdServer.Models
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Nav.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Nav.cshtml
index 874a97c31..bce6185b9 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Nav.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_Nav.cshtml
@@ -1,8 +1,8 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
-@using IdentityServer4.Extensions
+@using Duende.IdentityServer.Extensions
@{
string name = null;
@@ -17,7 +17,7 @@ Copyright (c) 2022 @Olivier Lefebvre
- IdentityServer4
+ Duende.IdentityServer
@if (!string.IsNullOrWhiteSpace(name))
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ScopeListItem.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ScopeListItem.cshtml
index 56bf578df..c6213a16e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ScopeListItem.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ScopeListItem.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model ScopeViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ValidationSummary.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ValidationSummary.cshtml
index 47718e214..b8727370b 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ValidationSummary.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/Shared/_ValidationSummary.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@if (ViewContext.ModelState.IsValid == false)
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewImports.cshtml
index cfb90e211..8af44b7ce 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using IdentityServerHost.Quickstart.UI
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewStart.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewStart.cshtml
index 9b590867b..ef40b5682 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewStart.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/Views/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
Layout = "_Layout";
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/updateUI.ps1 b/sample/MultiTiers/Aguacongas.TheIdServer.Private/updateUI.ps1
index 51f8f002e..6d738d558 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/updateUI.ps1
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/updateUI.ps1
@@ -1,4 +1,4 @@
-iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI.AspNetIdentity/master/getmaster.ps1'))
+iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/Duende.IdentityServer.Quickstart.UI.AspNetIdentity/master/getmaster.ps1'))
# SIG # Begin signature block
# MIIfnQYJKoZIhvcNAQcCoIIfjjCCH4oCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Private/wwwroot/js/signout-redirect.js b/sample/MultiTiers/Aguacongas.TheIdServer.Private/wwwroot/js/signout-redirect.js
index 3d497358c..f55ca141a 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Private/wwwroot/js/signout-redirect.js
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Private/wwwroot/js/signout-redirect.js
@@ -1,5 +1,5 @@
$(function () {
- var a = document.querySelector("a.PostLogoutRedirectUri");
+ const a = document.querySelector("a.PostLogoutRedirectUri");
if (a) {
window.location = a.href;
}
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Aguacongas.TheIdServer.Public.csproj b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Aguacongas.TheIdServer.Public.csproj
index 44eb41613..c1852fdcf 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Aguacongas.TheIdServer.Public.csproj
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Aguacongas.TheIdServer.Public.csproj
@@ -19,35 +19,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
-
+
+
-
+
-
-
-
-
-
+
+
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/IdentityHostingStartup.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/IdentityHostingStartup.cs
index 429ea67e5..ae712572c 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/IdentityHostingStartup.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/IdentityHostingStartup.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.Extensions.DependencyInjection;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
index 8dabd039a..d10d960aa 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model ConfirmEmailModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
index ce5e0d649..263890128 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml
index 78e3776b0..2b7d2cf6c 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model RegisterModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml.cs
index 5d936d839..5d3f01301 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/Register.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
index ec784e41d..ea94da5c6 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@page
@model RegisterConfirmationModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
index 3f21c1b31..1e78a2bb8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_StatusMessage.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_StatusMessage.cshtml
index e753b0f6a..a703f3e07 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_StatusMessage.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_StatusMessage.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model string
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_ViewImports.cshtml
index efcea9222..fb5244579 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/Account/_ViewImports.cshtml
@@ -1,5 +1,5 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Aguacongas.TheIdServer.Areas.Identity.Pages.Account
\ No newline at end of file
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
index bfd9c944b..d1b4d0bd8 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewImports.cshtml
index 3b35880a1..960b41a85 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Microsoft.AspNetCore.Identity
@using Aguacongas.TheIdServer.Areas.Identity
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewStart.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewStart.cshtml
index 2165833f2..cfbc7b3f4 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewStart.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Pages/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/AuthMessageSenderOptions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/AuthMessageSenderOptions.cs
index 70901c17f..a8ac2e605 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/AuthMessageSenderOptions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/AuthMessageSenderOptions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
namespace Aguacongas.TheIdServer.Areas.Identity
{
public class AuthMessageSenderOptions
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/EmailSender.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/EmailSender.cs
index 05549eba6..79bb62803 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/EmailSender.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Areas/Identity/Services/EmailSender.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.Extensions.Options;
using SendGrid;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/ApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/ApplicationBuilderExtensions.cs
index 5453e6ef4..ca0f8cbb4 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/ApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.Authentication;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/WebApplicationBuilderExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/WebApplicationBuilderExtensions.cs
index 9fe668df4..b576ab32b 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/WebApplicationBuilderExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Extensions/WebApplicationBuilderExtensions.cs
@@ -1,18 +1,16 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.IdentityServer;
using Aguacongas.IdentityServer.Abstractions;
using Aguacongas.IdentityServer.Admin.Options;
using Aguacongas.IdentityServer.Admin.Services;
using Aguacongas.TheIdServer.Authentication;
using Aguacongas.TheIdServer.Models;
+using Duende.IdentityServer.Services;
using IdentityModel.AspNetCore.OAuth2Introspection;
-using IdentityServer4.AccessTokenValidation;
-using IdentityServer4.Services;
using IdentityServerHost.Quickstart.UI;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -23,6 +21,7 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Builder
{
@@ -87,7 +86,7 @@ void configureOptions(IdentityServerOptions options)
services.AddAuthorization(options =>
options.AddIdentityServerPolicies())
.AddAuthentication()
- .AddIdentityServerAuthentication(JwtBearerDefaults.AuthenticationScheme, ConfigureIdentityServerAuthenticationOptions(configuration));
+ .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, ConfigureIdentityServerAuthenticationOptions(configuration));
var mvcBuilder = services.Configure(configuration)
.AddLocalization()
@@ -110,40 +109,45 @@ void configureOptions(IdentityServerOptions options)
return webApplicationBuilder;
}
- private static Action ConfigureIdentityServerAuthenticationOptions(IConfiguration configuration)
+ private static Action ConfigureIdentityServerAuthenticationOptions(IConfiguration configuration)
=> options =>
{
configuration.GetSection("ApiAuthentication").Bind(options);
if (configuration.GetValue("DisableStrictSsl"))
{
- options.JwtBackChannelHandler = new HttpClientHandler
+ options.BackchannelHttpHandler = new HttpClientHandler
{
#pragma warning disable S4830 // Server certificates should be verified during SSL/TLS connections
ServerCertificateCustomValidationCallback = (message, cert, chain, policy) => true
#pragma warning restore S4830 // Server certificates should be verified during SSL/TLS connections
};
}
-
- static string tokenRetriever(HttpRequest request)
+ options.Audience = configuration["ApiAuthentication:ApiName"];
+ options.Events = new JwtBearerEvents
{
- var path = request.Path;
- var accessToken = TokenRetrieval.FromQueryString()(request);
- if (path.StartsWithSegments("/providerhub") && !string.IsNullOrEmpty(accessToken))
- {
- return accessToken;
- }
- var oneTimeToken = TokenRetrieval.FromQueryString("otk")(request);
- if (!string.IsNullOrEmpty(oneTimeToken))
+ OnMessageReceived = context =>
{
- return request.HttpContext
- .RequestServices
- .GetRequiredService()
- .GetOneTimeToken(oneTimeToken);
+ var request = context.HttpContext.Request;
+ var path = request.Path;
+ var accessToken = TokenRetrieval.FromQueryString()(request);
+ if (path.StartsWithSegments("/providerhub") && !string.IsNullOrEmpty(accessToken))
+ {
+ context.Token = accessToken;
+ return Task.CompletedTask;
+ }
+ var oneTimeToken = TokenRetrieval.FromQueryString("otk")(request);
+ if (!string.IsNullOrEmpty(oneTimeToken))
+ {
+ context.Token = request.HttpContext
+ .RequestServices
+ .GetRequiredService()
+ .ConsumeOneTimeToken(oneTimeToken);
+ return Task.CompletedTask;
+ }
+ context.Token = TokenRetrieval.FromAuthorizationHeader()(request);
+ return Task.CompletedTask;
}
- return TokenRetrieval.FromAuthorizationHeader()(request);
- }
-
- options.TokenRetriever = tokenRetriever;
+ };
};
}
}
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Program.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Program.cs
index 4f625aa58..68f7e6e0f 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Program.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Program.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Serilog;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/AccountController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/AccountController.cs
index cd30246a6..1ee69b41e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/AccountController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/AccountController.cs
@@ -3,11 +3,11 @@
using IdentityModel;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
@@ -217,7 +217,7 @@ private async Task BuildLoginViewModelAsync(string returnUrl)
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
if (context?.IdP != null && await _schemeProvider.GetSchemeAsync(context.IdP) != null)
{
- var local = context.IdP == IdentityServer4.IdentityServerConstants.LocalIdentityProvider;
+ var local = context.IdP == Duende.IdentityServer.IdentityServerConstants.LocalIdentityProvider;
// this is meant to short circuit the UI and only trigger the one external IdP
var vm = new LoginViewModel
@@ -319,7 +319,7 @@ private async Task BuildLoggedOutViewModelAsync(string logou
if (User?.Identity.IsAuthenticated == true)
{
var idp = User.FindFirst(JwtClaimTypes.IdentityProvider)?.Value;
- if (idp != null && idp != IdentityServer4.IdentityServerConstants.LocalIdentityProvider)
+ if (idp != null && idp != Duende.IdentityServer.IdentityServerConstants.LocalIdentityProvider)
{
var providerSupportsSignout = await HttpContext.GetSchemeSupportsSignOutAsync(idp);
if (providerSupportsSignout)
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/ExternalController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/ExternalController.cs
index 2f454ae73..eef1bc1a7 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/ExternalController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/ExternalController.cs
@@ -5,10 +5,10 @@
using System.Threading.Tasks;
using Aguacongas.TheIdServer.Models;
using IdentityModel;
-using IdentityServer4;
-using IdentityServer4.Events;
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+using Duende.IdentityServer;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/InvalidReturnUrlException.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/InvalidReturnUrlException.cs
index 7354c8bff..d4aa6f918 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/InvalidReturnUrlException.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Account/InvalidReturnUrlException.cs
@@ -1,9 +1,9 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System;
using System.Runtime.Serialization;
-namespace IdentityServer4.Quickstart.UI
+namespace Duende.IdentityServer.Quickstart.UI
{
///
/// Trowed when user click on malicious link
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ConsentController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ConsentController.cs
index 6c3aa44c7..7f5621f11 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ConsentController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ConsentController.cs
@@ -2,16 +2,16 @@
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
-using IdentityServer4.Events;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Extensions;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;
-using IdentityServer4.Validation;
+using Duende.IdentityServer.Validation;
using System.Collections.Generic;
using System;
@@ -120,7 +120,7 @@ private async Task ProcessConsent(ConsentInputModel model)
var scopes = model.ScopesConsented;
if (ConsentOptions.EnableOfflineAccess == false)
{
- scopes = scopes.Where(x => x != IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess);
+ scopes = scopes.Where(x => x != Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess);
}
grantedConsent = new ConsentResponse
@@ -208,7 +208,7 @@ private ConsentViewModel CreateConsentViewModel(
}
if (ConsentOptions.EnableOfflineAccess && request.ValidatedResources.Resources.OfflineAccess)
{
- apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
+ apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
}
vm.ApiScopes = apiScopes;
@@ -251,7 +251,7 @@ private ScopeViewModel GetOfflineAccessScope(bool check)
{
return new ScopeViewModel
{
- Value = IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess,
+ Value = Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess,
DisplayName = ConsentOptions.OfflineAccessDisplayName,
Description = ConsentOptions.OfflineAccessDescription,
Emphasize = true,
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ProcessConsentResult.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ProcessConsentResult.cs
index 1d331df04..e18d8f54e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ProcessConsentResult.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Consent/ProcessConsentResult.cs
@@ -2,7 +2,7 @@
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Device/DeviceController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Device/DeviceController.cs
index d7d07aeb9..f27b45afc 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Device/DeviceController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Device/DeviceController.cs
@@ -6,12 +6,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
-using IdentityServer4.Configuration;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
-using IdentityServer4.Models;
-using IdentityServer4.Services;
-using IdentityServer4.Validation;
+using Duende.IdentityServer.Configuration;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
+using Duende.IdentityServer.Models;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Validation;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
@@ -102,7 +102,7 @@ private async Task ProcessConsent(DeviceAuthorizationInput
var scopes = model.ScopesConsented;
if (ConsentOptions.EnableOfflineAccess == false)
{
- scopes = scopes.Where(x => x != IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess);
+ scopes = scopes.Where(x => x != Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess);
}
grantedConsent = new ConsentResponse
@@ -184,7 +184,7 @@ private DeviceAuthorizationViewModel CreateConsentViewModel(string userCode, Dev
}
if (ConsentOptions.EnableOfflineAccess && request.ValidatedResources.Resources.OfflineAccess)
{
- apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
+ apiScopes.Add(GetOfflineAccessScope(vm.ScopesConsented.Contains(Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess) || model == null));
}
vm.ApiScopes = apiScopes;
@@ -221,7 +221,7 @@ private ScopeViewModel GetOfflineAccessScope(bool check)
{
return new ScopeViewModel
{
- Value = IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess,
+ Value = Duende.IdentityServer.IdentityServerConstants.StandardScopes.OfflineAccess,
DisplayName = ConsentOptions.OfflineAccessDisplayName,
Description = ConsentOptions.OfflineAccessDescription,
Emphasize = true,
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Diagnostics/DiagnosticsViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Diagnostics/DiagnosticsViewModel.cs
index f43c7685b..be2682fa1 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Diagnostics/DiagnosticsViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Diagnostics/DiagnosticsViewModel.cs
@@ -16,14 +16,15 @@ public DiagnosticsViewModel(AuthenticateResult result)
{
AuthenticateResult = result;
- if (result.Properties.Items.ContainsKey("client_list"))
+ if (!result.Properties.Items.TryGetValue("client_list", out string encoded))
{
- var encoded = result.Properties.Items["client_list"];
- var bytes = Base64Url.Decode(encoded);
- var value = Encoding.UTF8.GetString(bytes);
-
- Clients = JsonConvert.DeserializeObject(value);
+ return;
}
+
+ var bytes = Base64Url.Decode(encoded);
+ var value = Encoding.UTF8.GetString(bytes);
+
+ Clients = JsonConvert.DeserializeObject(value);
}
public AuthenticateResult AuthenticateResult { get; }
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Extensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Extensions.cs
index 6c720b707..d441f5288 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Extensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Extensions.cs
@@ -1,5 +1,5 @@
using System;
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
using Microsoft.AspNetCore.Mvc;
namespace IdentityServerHost.Quickstart.UI
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Grants/GrantsController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Grants/GrantsController.cs
index 128ce5921..0e5d7c395 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Grants/GrantsController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Grants/GrantsController.cs
@@ -2,15 +2,15 @@
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
-using IdentityServer4.Services;
-using IdentityServer4.Stores;
+using Duende.IdentityServer.Services;
+using Duende.IdentityServer.Stores;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
-using IdentityServer4.Events;
-using IdentityServer4.Extensions;
+using Duende.IdentityServer.Events;
+using Duende.IdentityServer.Extensions;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/ErrorViewModel.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/ErrorViewModel.cs
index 7d2cbe3a3..26529a5ee 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/ErrorViewModel.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/ErrorViewModel.cs
@@ -2,7 +2,7 @@
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
-using IdentityServer4.Models;
+using Duende.IdentityServer.Models;
namespace IdentityServerHost.Quickstart.UI
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/HomeController.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/HomeController.cs
index 9cf067895..937ac19c2 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/HomeController.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/Home/HomeController.cs
@@ -2,7 +2,7 @@
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
-using IdentityServer4.Services;
+using Duende.IdentityServer.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/TestUsers.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/TestUsers.cs
index 4f9fc7f45..cf23a2360 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/TestUsers.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Quickstart/TestUsers.cs
@@ -3,7 +3,7 @@
using IdentityModel;
-using IdentityServer4.Test;
+using Duende.IdentityServer.Test;
using System.Collections.Generic;
using System.Security.Claims;
@@ -22,7 +22,7 @@ public class TestUsers
new Claim(JwtClaimTypes.Email, "AliceSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://alice.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json)
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json)
}
},
new TestUser{SubjectId = "88421113", Username = "bob", Password = "bob",
@@ -34,7 +34,7 @@ public class TestUsers
new Claim(JwtClaimTypes.Email, "BobSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.WebSite, "http://bob.com"),
- new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", IdentityServer4.IdentityServerConstants.ClaimValueTypes.Json),
+ new Claim(JwtClaimTypes.Address, @"{ 'street_address': 'One Hacker Way', 'locality': 'Heidelberg', 'postal_code': 69118, 'country': 'Germany' }", Duende.IdentityServer.IdentityServerConstants.ClaimValueTypes.Json),
new Claim("location", "somewhere")
}
}
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/SameSiteCookiesServiceCollectionExtensions.cs b/sample/MultiTiers/Aguacongas.TheIdServer.Public/SameSiteCookiesServiceCollectionExtensions.cs
index 7314baf01..beb80bf30 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/SameSiteCookiesServiceCollectionExtensions.cs
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/SameSiteCookiesServiceCollectionExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Home/Index.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Home/Index.cshtml
index 36b2bfc3a..71488fb50 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Home/Index.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Home/Index.cshtml
@@ -1,13 +1,13 @@
@using System.Diagnostics
@{
- var version = FileVersionInfo.GetVersionInfo(typeof(IdentityServer4.Hosting.IdentityServerMiddleware).Assembly.Location).ProductVersion.Split('+').First();
+ var version = FileVersionInfo.GetVersionInfo(typeof(Duende.IdentityServer.Hosting.IdentityServerMiddleware).Assembly.Location).ProductVersion.Split('+').First();
}
- Welcome to IdentityServer4
+ Welcome to Duende.IdentityServer
(version @version)
@@ -25,8 +25,8 @@
Here are links to the
- source code repository ,
- and ready to use samples .
+ source code repository ,
+ and ready to use samples .
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Error.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Error.cshtml
index aa0ca98fd..0e40e8679 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Error.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Error.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model ErrorViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Redirect.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Redirect.cshtml
index cec777b10..7c7dffd86 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Redirect.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/Redirect.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model RedirectViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Layout.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Layout.cshtml
index 81cb96fdc..46408e3e7 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Layout.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Layout.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@@ -9,7 +9,7 @@ Copyright (c) 2022 @Olivier Lefebvre
- IdentityServer4
+ Duende.IdentityServer
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_LoginPartial.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_LoginPartial.cshtml
index 5790c1649..eea6c2d8a 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_LoginPartial.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_LoginPartial.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using Microsoft.AspNetCore.Identity
@using Aguacongas.TheIdServer.Models
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Nav.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Nav.cshtml
index 874a97c31..bce6185b9 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Nav.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_Nav.cshtml
@@ -1,8 +1,8 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
-@using IdentityServer4.Extensions
+@using Duende.IdentityServer.Extensions
@{
string name = null;
@@ -17,7 +17,7 @@ Copyright (c) 2022 @Olivier Lefebvre
- IdentityServer4
+ Duende.IdentityServer
@if (!string.IsNullOrWhiteSpace(name))
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ScopeListItem.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ScopeListItem.cshtml
index 56bf578df..c6213a16e 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ScopeListItem.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ScopeListItem.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@model ScopeViewModel
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ValidationSummary.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ValidationSummary.cshtml
index 47718e214..b8727370b 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ValidationSummary.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/Shared/_ValidationSummary.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@if (ViewContext.ModelState.IsValid == false)
{
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewImports.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewImports.cshtml
index cfb90e211..8af44b7ce 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewImports.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewImports.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@using IdentityServerHost.Quickstart.UI
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewStart.cshtml b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewStart.cshtml
index 9b590867b..ef40b5682 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewStart.cshtml
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/Views/_ViewStart.cshtml
@@ -1,6 +1,6 @@
@*
Project: Aguafrommars/TheIdServer
-Copyright (c) 2022 @Olivier Lefebvre
+Copyright (c) 2023 @Olivier Lefebvre
*@
@{
Layout = "_Layout";
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/updateUI.ps1 b/sample/MultiTiers/Aguacongas.TheIdServer.Public/updateUI.ps1
index 51f8f002e..6d738d558 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/updateUI.ps1
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/updateUI.ps1
@@ -1,4 +1,4 @@
-iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI.AspNetIdentity/master/getmaster.ps1'))
+iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/Duende.IdentityServer.Quickstart.UI.AspNetIdentity/master/getmaster.ps1'))
# SIG # Begin signature block
# MIIfnQYJKoZIhvcNAQcCoIIfjjCCH4oCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
diff --git a/sample/MultiTiers/Aguacongas.TheIdServer.Public/wwwroot/js/signout-redirect.js b/sample/MultiTiers/Aguacongas.TheIdServer.Public/wwwroot/js/signout-redirect.js
index 3d497358c..f55ca141a 100644
--- a/sample/MultiTiers/Aguacongas.TheIdServer.Public/wwwroot/js/signout-redirect.js
+++ b/sample/MultiTiers/Aguacongas.TheIdServer.Public/wwwroot/js/signout-redirect.js
@@ -1,5 +1,5 @@
$(function () {
- var a = document.querySelector("a.PostLogoutRedirectUri");
+ const a = document.querySelector("a.PostLogoutRedirectUri");
if (a) {
window.location = a.href;
}
diff --git a/sample/terraform/main.tf b/sample/terraform/main.tf
index 9c2763fb8..f02ec0761 100644
--- a/sample/terraform/main.tf
+++ b/sample/terraform/main.tf
@@ -41,7 +41,7 @@ locals {
key = "agentpool"
operator = "In"
values = [
- "userpool"
+ "agentpool"
]
}]
}]
@@ -68,6 +68,12 @@ locals {
seq = {
# set node affinity to userpool nodes
affinity = local.affinity
+ ingress = {
+ annotations = {
+ "kubernetes.io/ingress.class" = "azure/application-gateway"
+ "cert-manager.io/cluster-issuer" = "letsencrypt"
+ }
+ }
}
mysql = {
image = {
@@ -102,12 +108,15 @@ locals {
# ingress annotations
ingress = {
annotations = {
- "kubernetes.io/ingress.class" = "nginx"
+ "kubernetes.io/ingress.class" = "azure/application-gateway"
"cert-manager.io/cluster-issuer" = "letsencrypt"
- "nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream" = "true"
- "nginx.ingress.kubernetes.io/backend-protocol" = "HTTPS"
- "nginx.ingress.kubernetes.io/auth-tls-verify-client" = "off"
}
+ tls = [{
+ hosts = [
+ "${format("www.%s", local.host)}"
+ ]
+ secretName = "theidserver-certs"
+ }]
}
appSettings = {
file = {
@@ -230,32 +239,63 @@ locals {
wait = false
}
-# Install ingress-nginx
-resource "helm_release" "nginx_ingress" {
- name = "nginx-ingress"
- repository = "https://kubernetes.github.io/ingress-nginx"
- chart = "ingress-nginx"
- version = "4.1.1"
- namespace = "ingress-nginx"
+# Install AAD Pod Identity
+resource "helm_release" "aad_pod_identity" {
+ name = "aad-pod-identity"
+ repository = "https://raw.githubusercontent.com/Azure/aad-pod-identity/master/charts/"
+ chart = "aad-pod-identity"
+ namespace = "ingress-azure"
create_namespace = true
+}
+
+# Install ingress-azure
+resource "helm_release" "azure_ingress" {
+ name = "ingress-azure"
+ repository = "https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/"
+ chart = "ingress-azure"
+ namespace = "ingress-azure"
+ create_namespace = true
+
+ set {
+ name = "appgw.name"
+ value = "applicationgateway5f3a"
+ }
- # enable ssl passthrough to have end-to-end encryption
set {
- name = "controller.extraArgs.enable-ssl-passthrough"
- value = true
+ name = "appgw.resourceGroup"
+ value = "K8S"
}
+ set {
+ name = "appgw.subscriptionId"
+ value = "7cd7a404-3a0a-41bd-996b-cc3248e8c292"
+ }
+
+ set {
+ name = "appgw.share"
+ value = false
+ }
+
+ set {
+ name = "armAuth.type"
+ value = "servicePrincipal"
+ }
+
+ set {
+ name = "armAuth.secretJSON"
+ value = "ew0KICAiY2xpZW50SWQiOiAiNWZiZTI4YWYtMWExNC00NjIxLWI0OTUtMWFkMzFhNWYwMzM2IiwNCiAgImNsaWVudFNlY3JldCI6ICJwd0VncDVhLWc5eEhMN0hEd0RpNzhxb340U3E4aEU5U2x+IiwNCiAgInN1YnNjcmlwdGlvbklkIjogIjdjZDdhNDA0LTNhMGEtNDFiZC05OTZiLWNjMzI0OGU4YzI5MiIsDQogICJ0ZW5hbnRJZCI6ICI5YjZiNDM4Zi03MjUyLTQ0MDEtODUyZi05NTJmODYwYTA4NTkiLA0KICAiYWN0aXZlRGlyZWN0b3J5RW5kcG9pbnRVcmwiOiAiaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tIiwNCiAgInJlc291cmNlTWFuYWdlckVuZHBvaW50VXJsIjogImh0dHBzOi8vbWFuYWdlbWVudC5henVyZS5jb20vIiwNCiAgImFjdGl2ZURpcmVjdG9yeUdyYXBoUmVzb3VyY2VJZCI6ICJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LyIsDQogICJzcWxNYW5hZ2VtZW50RW5kcG9pbnRVcmwiOiAiaHR0cHM6Ly9tYW5hZ2VtZW50LmNvcmUud2luZG93cy5uZXQ6ODQ0My8iLA0KICAiZ2FsbGVyeUVuZHBvaW50VXJsIjogImh0dHBzOi8vZ2FsbGVyeS5henVyZS5jb20vIiwNCiAgIm1hbmFnZW1lbnRFbmRwb2ludFVybCI6ICJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iDQp9DQo="
+ }
+
wait = local.wait
}
-
# Install cert_manager to manage TLS certificates with letsencrypt
resource "helm_release" "cert_manager" {
name = "cert-manager"
repository = "https://charts.jetstack.io"
chart = "cert-manager"
- version = "1.7.2"
- namespace = "ingress-nginx"
+ version = "1.8.0"
+ namespace = "cert-manager"
create_namespace = true
# uncomment it on 1st deploy
@@ -268,18 +308,6 @@ resource "helm_release" "cert_manager" {
wait = local.wait
}
-# Instal wave to restart nodes on config changes
-resource "helm_release" "wave" {
- name = "wave"
- repository = "https://wave-k8s.github.io/wave/"
- chart = "wave"
- version = "2.0.0"
- namespace = "wave"
- create_namespace = true
-
- wait = local.wait
-}
-
# creates ClusterIssuer
resource "kubernetes_manifest" "cluster_issuer" {
manifest = {
@@ -298,7 +326,7 @@ resource "kubernetes_manifest" "cluster_issuer" {
solvers = [{
http01 = {
ingress = {
- class = "nginx"
+ class = "azure/application-gateway"
}
}
}]
diff --git a/src/Aguacongas.TheIdServer.Authentication/Aguacongas.TheIdServer.Authentication.csproj b/src/Aguacongas.TheIdServer.Authentication/Aguacongas.TheIdServer.Authentication.csproj
index 6da13d8fc..4958f4902 100644
--- a/src/Aguacongas.TheIdServer.Authentication/Aguacongas.TheIdServer.Authentication.csproj
+++ b/src/Aguacongas.TheIdServer.Authentication/Aguacongas.TheIdServer.Authentication.csproj
@@ -3,7 +3,7 @@
net7.0
Olivier Lefebvre
- Copyright (c) 2022 @Olivier Lefebvre
+ Copyright (c) 2023 @Olivier Lefebvre
Apache-2.0
https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.Authentication
https://github.com/Aguafrommars/TheIdServer
diff --git a/src/Aguacongas.TheIdServer.Authentication/DynamicAuthenticationBuilderExtensions.cs b/src/Aguacongas.TheIdServer.Authentication/DynamicAuthenticationBuilderExtensions.cs
index f5ebb4b3e..bb9a88000 100644
--- a/src/Aguacongas.TheIdServer.Authentication/DynamicAuthenticationBuilderExtensions.cs
+++ b/src/Aguacongas.TheIdServer.Authentication/DynamicAuthenticationBuilderExtensions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.AspNetCore.Authentication;
using Aguacongas.TheIdServer.Authentication;
diff --git a/src/Aguacongas.TheIdServer.Authentication/DynamicProviderStore.cs b/src/Aguacongas.TheIdServer.Authentication/DynamicProviderStore.cs
index 3ad4aacae..5c60df441 100644
--- a/src/Aguacongas.TheIdServer.Authentication/DynamicProviderStore.cs
+++ b/src/Aguacongas.TheIdServer.Authentication/DynamicProviderStore.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.AspNetCore.Authentication;
using Aguacongas.IdentityServer.Store;
using Aguacongas.IdentityServer.Store.Entity;
diff --git a/src/Aguacongas.TheIdServer.Authentication/SchemeDefinition.cs b/src/Aguacongas.TheIdServer.Authentication/SchemeDefinition.cs
index e15f9f206..d9ace71b3 100644
--- a/src/Aguacongas.TheIdServer.Authentication/SchemeDefinition.cs
+++ b/src/Aguacongas.TheIdServer.Authentication/SchemeDefinition.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.AspNetCore.Authentication;
namespace Aguacongas.TheIdServer.Authentication
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/Aguacongas.TheIdServer.BlazorApp.csproj b/src/Aguacongas.TheIdServer.BlazorApp/Aguacongas.TheIdServer.BlazorApp.csproj
index b879e7562..53ca75ae3 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/Aguacongas.TheIdServer.BlazorApp.csproj
+++ b/src/Aguacongas.TheIdServer.BlazorApp/Aguacongas.TheIdServer.BlazorApp.csproj
@@ -1,9 +1,9 @@
-
+
net7.0
Olivier Lefebvre
- Copyright (c) 2022 @Olivier Lefebvre
+ Copyright (c) 2023 @Olivier Lefebvre
Apache-2.0
true
https://github.com/Aguafrommars/TheIdServer/tree/master/src/Aguacongas.TheIdServer.BlazorApp
@@ -16,7 +16,7 @@
enable
enable
- false
+ true
@@ -36,8 +36,8 @@
-
-
+
+
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/App.razor b/src/Aguacongas.TheIdServer.BlazorApp/App.razor
index f179c46a7..23f3005dc 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/App.razor
+++ b/src/Aguacongas.TheIdServer.BlazorApp/App.razor
@@ -3,6 +3,8 @@
@using Microsoft.Extensions.Logging
@inject LazyAssemblyLoader _assemblyLoader
@inject ILogger _logger
+@inject ThemeService _themeService
+
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/App.razor.cs b/src/Aguacongas.TheIdServer.BlazorApp/App.razor.cs
index 20fb43c94..aaea11976 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/App.razor.cs
+++ b/src/Aguacongas.TheIdServer.BlazorApp/App.razor.cs
@@ -1,5 +1,6 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
+using Aguacongas.TheIdServer.BlazorApp.Services;
using Microsoft.AspNetCore.Components.Routing;
using System.Reflection;
@@ -30,7 +31,13 @@ public partial class App
"Settings"
};
- private Task OnNavigateAsync(NavigationContext args)
+ protected override async Task OnInitializedAsync()
+ {
+ await base.OnInitializedAsync().ConfigureAwait(false);
+ await _themeService.InitAsync().ConfigureAwait(false);
+ }
+
+ private Task OnNavigateAsync(NavigationContext args)
{
var path = args.Path.Split("/")[0];
if (path == "protectresource")
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/GlobalSuppressions.cs b/src/Aguacongas.TheIdServer.BlazorApp/GlobalSuppressions.cs
index d4120dba2..47d0d2633 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/GlobalSuppressions.cs
+++ b/src/Aguacongas.TheIdServer.BlazorApp/GlobalSuppressions.cs
@@ -1,5 +1,5 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Globalization", "CA1303:Do not pass literals as localized parameters", Justification = "")]
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/Program.cs b/src/Aguacongas.TheIdServer.BlazorApp/Program.cs
index 8a9726341..35a4d3f63 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/Program.cs
+++ b/src/Aguacongas.TheIdServer.BlazorApp/Program.cs
@@ -1,7 +1,8 @@
// Project: Aguafrommars/TheIdServer
-// Copyright (c) 2022 @Olivier Lefebvre
+// Copyright (c) 2023 @Olivier Lefebvre
using Aguacongas.TheIdServer.BlazorApp;
using Aguacongas.TheIdServer.BlazorApp.Models;
+using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.JSInterop;
using System.Globalization;
@@ -12,7 +13,9 @@
var settings = configuration.Get();
if (settings?.Prerendered == false)
{
- builder.RootComponents.Add("app");
+ var rootComponents = builder.RootComponents;
+ rootComponents.Add(settings.HostElementIdentifier);
+ rootComponents.Add("head::after");
}
var host = builder.Build();
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/README.md b/src/Aguacongas.TheIdServer.BlazorApp/README.md
index 9b3e6c256..ab0f5abe5 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/README.md
+++ b/src/Aguacongas.TheIdServer.BlazorApp/README.md
@@ -67,7 +67,16 @@ The application obtains its configuration from appsettings.json and the environm
"redirectUri": "https://localhost:5443/authentication/login-callback",
"responseType": "code"
},
- "welcomeContenUrl": "/welcome-fragment.html"
+ "settingsOptions": {
+ "typeName": "Aguacongas.TheIdServer.BlazorApp.Models.ServerConfig, Aguacongas.TheIdServer.BlazorApp.Infrastructure",
+ "apiUrl": "https://localhost:5443/api/api/configuration"
+ },
+ "menuOptions": {
+ "showSettings": true
+ },
+ "welcomeContenUrl": "https://localhost:5443/welcome-fragment.html",
+ "serverSideSessionEnabled": false,
+ "cibaEnabled": false
}
```
@@ -149,12 +158,18 @@ This endpoint should return an HTML fragment.
```
-## Client and API secrets
+## UI Options
+### Hide settings menu
+
+To hide the settings menu, unset **menuOptions:showSettings**.
+
+### Hide CIBA grant type
+
+If CIBA is not enabled you can hide the CIBA grant type by unsetting cibaEnabled options.
-The application doesn't generate secrets. Shared Secrets or x509 certificates require conversion before storing.
+### Hide coordinate lifetime with user session checkbox
-* Convert a SharedSecret to SHA256 value.
-* Convert an X509 certificate to Base64 string.
+If server side sessions are not enable you can hide the coordinate lifetime with user session checkbox in client tokens section by unsetting serverSideSessionEnabled options.
## Additional resources
diff --git a/src/Aguacongas.TheIdServer.BlazorApp/Shared/MainLayout.razor b/src/Aguacongas.TheIdServer.BlazorApp/Shared/MainLayout.razor
index 1d6130c48..b66a67684 100644
--- a/src/Aguacongas.TheIdServer.BlazorApp/Shared/MainLayout.razor
+++ b/src/Aguacongas.TheIdServer.BlazorApp/Shared/MainLayout.razor
@@ -3,18 +3,25 @@
@inherits LayoutComponentBase
-