gitextract__ksyciu0/ ├── .config/ │ └── dotnet-tools.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── Question.md │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── codeql.yml │ ├── develop.yml │ ├── master.yml │ ├── pre-release.yml │ └── release.yml ├── .gitignore ├── .readthedocs.yaml ├── Directory.Build.props ├── Directory.Build.targets ├── Directory.Packages.props ├── GitReleaseManager.yaml ├── IdentityServer8.DotNet.ruleset ├── LICENSE ├── LicenseHeader.txt ├── NuGet.config ├── README.md ├── SECURITY.MD ├── SPONSORS.md ├── docker-compose.dcproj ├── docker-compose.override.yml ├── docker-compose.vs.debug.yml ├── docker-compose.vs.release.yml ├── docker-compose.yml ├── docs/ │ ├── CHANGELOG.md │ ├── Makefile │ ├── autobuild.bat │ ├── build-documentation.ps1 │ ├── conf.py │ ├── docker-build.ps1 │ ├── dockerfile │ ├── endpoints/ │ │ ├── authorize.rst │ │ ├── device_authorization.rst │ │ ├── discovery.rst │ │ ├── endsession.rst │ │ ├── introspection.rst │ │ ├── revocation.rst │ │ ├── token.rst │ │ └── userinfo.rst │ ├── identityserver docs figures.pptx │ ├── index.rst │ ├── intro/ │ │ ├── big_picture.rst │ │ ├── contributing.rst │ │ ├── packaging.rst │ │ ├── specs.rst │ │ ├── support.rst │ │ ├── terminology.rst │ │ └── test.rst │ ├── make.bat │ ├── misc/ │ │ ├── blogs.rst │ │ ├── training.rst │ │ └── videos.rst │ ├── quickstarts/ │ │ ├── 0_overview.rst │ │ ├── 1_client_credentials.rst │ │ ├── 2_interactive_aspnetcore.rst │ │ ├── 3_aspnetcore_and_apis.rst │ │ ├── 4_javascript_client.rst │ │ ├── 5_entityframework.rst │ │ ├── 6_aspnet_identity.rst │ │ └── community.rst │ ├── readme.md │ ├── reference/ │ │ ├── api_resource.rst │ │ ├── api_scope.rst │ │ ├── aspnet_identity.rst │ │ ├── client.rst │ │ ├── deviceflow_interactionservice.rst │ │ ├── ef.rst │ │ ├── grant_validation_result.rst │ │ ├── identity_resource.rst │ │ ├── interactionservice.rst │ │ ├── options.rst │ │ └── profileservice.rst │ ├── requirements.txt │ └── topics/ │ ├── add_apis.rst │ ├── add_protocols.rst │ ├── apis.rst │ ├── client_authentication.rst │ ├── clients.rst │ ├── consent.rst │ ├── cors.rst │ ├── crypto.rst │ ├── custom_token_request_validation.rst │ ├── deployment.rst │ ├── discovery.rst │ ├── events.rst │ ├── extension_grants.rst │ ├── federation_gateway.rst │ ├── grant_types.rst │ ├── logging.rst │ ├── mtls.rst │ ├── persisted_grants.rst │ ├── pop.rst │ ├── reference_tokens.rst │ ├── refresh_tokens.rst │ ├── request_object.rst │ ├── resource_owner.rst │ ├── resources.rst │ ├── signin.rst │ ├── signin_external_providers.rst │ ├── signout.rst │ ├── signout_external_providers.rst │ ├── signout_federated.rst │ ├── startup.rst │ ├── tools.rst │ └── windows.rst ├── global.json ├── key.snk ├── main.cmd ├── samples/ │ ├── Clients/ │ │ ├── Clients.sln.licenseheader │ │ ├── ClientsGlobalUsings.cs │ │ ├── Directory.Build.props │ │ ├── old/ │ │ │ ├── Clients.sln │ │ │ ├── Clients.sln.licenseheader │ │ │ ├── Directory.Build.props │ │ │ ├── MvcHybrid/ │ │ │ │ ├── Controllers/ │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── MvcHybrid.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── CallApi.cshtml │ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ │ └── Secure.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ └── _Layout.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── appsettings.json │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ └── site.css │ │ │ │ └── js/ │ │ │ │ └── site.js │ │ │ ├── MvcHybridAutomaticRefresh/ │ │ │ │ ├── AutomaticTokenManagement/ │ │ │ │ │ ├── AutomaticTokenManagementBuilderExtensions.cs │ │ │ │ │ ├── AutomaticTokenManagementConfigureCookieOptions.cs │ │ │ │ │ ├── AutomaticTokenManagementCookieEvents.cs │ │ │ │ │ ├── AutomaticTokenManagementOptions.cs │ │ │ │ │ └── TokenEndpointService.cs │ │ │ │ ├── Controllers/ │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── MvcHybridAutomaticRefresh.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Views/ │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── CallApi.cshtml │ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ │ └── Secure.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ └── _Layout.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── appsettings.json │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ └── site.css │ │ │ │ └── js/ │ │ │ │ └── site.js │ │ │ ├── MvcImplicit/ │ │ │ │ ├── Controllers/ │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── MvcImplicit.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ │ └── Secure.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ └── _Layout.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ └── site.css │ │ │ │ └── js/ │ │ │ │ └── site.js │ │ │ ├── MvcImplicitJwtRequest/ │ │ │ │ ├── Controllers/ │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── MvcImplicitJwtRequest.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ │ └── Secure.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ └── _Layout.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ └── site.css │ │ │ │ └── js/ │ │ │ │ └── site.js │ │ │ ├── MvcManual/ │ │ │ │ ├── Controllers/ │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── MvcManual.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ │ └── Secure.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ └── _Layout.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ └── site.css │ │ │ │ └── js/ │ │ │ │ └── site.js │ │ │ └── MvcUsings.cs │ │ ├── readme.md │ │ ├── shared/ │ │ │ └── Constants/ │ │ │ ├── ConsoleExtensions.cs │ │ │ ├── Constants.cs │ │ │ ├── Constants.csproj │ │ │ └── TokenResponseExtensions.cs │ │ └── src/ │ │ ├── APIs/ │ │ │ ├── ResourceBasedApi/ │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ └── ResourceBasedApi.csproj │ │ │ └── SimpleApi/ │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ └── SimpleApi.csproj │ │ ├── Clients.sln │ │ ├── ConsoleClientCredentialsFlow/ │ │ │ ├── ConsoleClientCredentialsFlow.csproj │ │ │ └── Program.cs │ │ ├── ConsoleClientCredentialsFlowCallingIdentityServerApi/ │ │ │ ├── ConsoleClientCredentialsFlowCallingIdentityServerApi.csproj │ │ │ └── Program.cs │ │ ├── ConsoleClientCredentialsFlowPostBody/ │ │ │ ├── ConsoleClientCredentialsFlowPostBody.csproj │ │ │ └── Program.cs │ │ ├── ConsoleCode/ │ │ │ ├── ConsoleCode.csproj │ │ │ ├── Program.cs │ │ │ └── SystemBrowser.cs │ │ ├── ConsoleCustomGrant/ │ │ │ ├── ConsoleExtensionGrant.csproj │ │ │ └── Program.cs │ │ ├── ConsoleDeviceFlow/ │ │ │ ├── ConsoleDeviceFlow.csproj │ │ │ └── Program.cs │ │ ├── ConsoleEphemeralMtlsClient/ │ │ │ ├── ConsoleEphemeralMtlsClient.csproj │ │ │ ├── GlobalUsings.cs │ │ │ └── Program.cs │ │ ├── ConsoleIntrospectionClient/ │ │ │ ├── ConsoleIntrospectionClient.csproj │ │ │ └── Program.cs │ │ ├── ConsoleMTLSClient/ │ │ │ ├── ConsoleMTLSClient.csproj │ │ │ ├── Program.cs │ │ │ └── client.p12 │ │ ├── ConsoleParameterizedScopeClient/ │ │ │ ├── ConsoleParameterizedScopeClient.csproj │ │ │ └── Program.cs │ │ ├── ConsolePrivateKeyJwtClient/ │ │ │ ├── ConsolePrivateKeyJwtClient.csproj │ │ │ ├── Program.cs │ │ │ └── client.p12 │ │ ├── ConsoleResourceOwnerFlow/ │ │ │ ├── ConsoleResourceOwnerFlow.csproj │ │ │ └── Program.cs │ │ ├── ConsoleResourceOwnerFlowPublic/ │ │ │ ├── ConsoleResourceOwnerFlowPublic.csproj │ │ │ └── Program.cs │ │ ├── ConsoleResourceOwnerFlowReference/ │ │ │ ├── ConsoleResourceOwnerFlowReference.csproj │ │ │ └── Program.cs │ │ ├── ConsoleResourceOwnerFlowRefreshToken/ │ │ │ ├── ConsoleResourceOwnerFlowRefreshToken.csproj │ │ │ ├── GlobalUsings.cs │ │ │ └── Program.cs │ │ ├── ConsoleResourceOwnerFlowUserInfo/ │ │ │ ├── ConsoleResourceOwnerFlowUserInfo.csproj │ │ │ └── Program.cs │ │ ├── Directory.Build.props │ │ ├── JsOidc/ │ │ │ ├── JsOidc.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── web.config │ │ │ └── wwwroot/ │ │ │ ├── StyleSheet.css │ │ │ ├── app.js │ │ │ ├── callback.html │ │ │ ├── callback.js │ │ │ ├── index.html │ │ │ ├── libs/ │ │ │ │ ├── oidc-client.d.ts │ │ │ │ ├── oidc-client.js │ │ │ │ ├── oidc-client.rsa256.slim.js │ │ │ │ └── oidc-client.slim.js │ │ │ ├── popup.html │ │ │ ├── popup.js │ │ │ ├── silent.html │ │ │ └── silent.js │ │ ├── MvcAutomaticTokenManagement/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── MvcAutomaticTokenManagement.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── CallApi.cshtml │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Secure.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ └── _ValidationScriptsPartial.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── MvcCode/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── MvcCode.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── CallApi.cshtml │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Secure.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ └── _ValidationScriptsPartial.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── MvcHybridBackChannel/ │ │ │ ├── Controllers/ │ │ │ │ ├── HomeController.cs │ │ │ │ └── LogoutController.cs │ │ │ ├── CookieEventHandler.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── LogoutSessionManager.cs │ │ │ ├── MvcHybridBackChannel.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── CallApi.cshtml │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Secure.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ └── _Layout.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── _references.js │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ └── WindowsConsoleSystemBrowser/ │ │ ├── CallbackManager.cs │ │ ├── Program.cs │ │ ├── RegistryConfig.cs │ │ └── WindowsConsoleSystemBrowser.csproj │ ├── Directory.Build.props │ ├── KeyManagement/ │ │ ├── Directory.Build.props │ │ ├── FileSystemKeys/ │ │ │ ├── Directory.Build.props │ │ │ ├── FileSystem/ │ │ │ │ ├── Config.cs │ │ │ │ ├── FileSystemSample.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ └── appsettings.json │ │ │ ├── KeyManagement.sln │ │ │ ├── KeyManagement.sln.licenseheader │ │ │ └── database/ │ │ │ ├── EF/ │ │ │ │ ├── Config.cs │ │ │ │ ├── EfSample.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ └── appsettings.json │ │ │ └── migrations/ │ │ │ ├── Migrations/ │ │ │ │ ├── KeyManagement/ │ │ │ │ │ ├── 20200327143521_KeyManagement.Designer.cs │ │ │ │ │ ├── 20200327143521_KeyManagement.cs │ │ │ │ │ └── KeyManagementDbContextModelSnapshot.cs │ │ │ │ └── KeyManagement.sql │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── appsettings.json │ │ │ ├── builddb.bat │ │ │ └── migrations.csproj │ │ └── KeyManagementGlobalUsings.cs │ ├── Quickstarts/ │ │ ├── 1_ClientCredentials/ │ │ │ ├── Directory.Build.props │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ └── IdentityServer/ │ │ │ ├── GlobalUsings.cs │ │ │ ├── IdentityServer.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ └── libman.json │ │ ├── 2_InteractiveAspNetCore/ │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ ├── IdentityServer/ │ │ │ │ ├── Config.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── IdentityServer.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Quickstart/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ │ └── DeviceController.cs │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ │ └── HomeController.cs │ │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ │ └── TestUsers.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ │ └── Logout.cshtml │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Home/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ ├── site.css │ │ │ │ │ └── site.scss │ │ │ │ └── js/ │ │ │ │ ├── signin-redirect.js │ │ │ │ └── signout-redirect.js │ │ │ └── MvcClient/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Models/ │ │ │ │ └── ErrorViewModel.cs │ │ │ ├── MvcClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Privacy.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ │ └── json.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── 3_AspNetCoreAndApis/ │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ ├── IdentityServer/ │ │ │ │ ├── Config.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── IdentityServer.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Quickstart/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ │ └── DeviceController.cs │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ │ └── HomeController.cs │ │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ │ └── TestUsers.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ │ └── Logout.cshtml │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Home/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ ├── site.css │ │ │ │ │ └── site.scss │ │ │ │ └── js/ │ │ │ │ ├── signin-redirect.js │ │ │ │ └── signout-redirect.js │ │ │ └── MvcClient/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Models/ │ │ │ │ └── ErrorViewModel.cs │ │ │ ├── MvcClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Privacy.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ │ └── json.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── 4_JavaScriptClient/ │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ ├── IdentityServer/ │ │ │ │ ├── Config.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── IdentityServer.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Quickstart/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ │ └── DeviceController.cs │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ │ └── HomeController.cs │ │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ │ └── TestUsers.cs │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ │ └── Logout.cshtml │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Home/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ ├── site.css │ │ │ │ │ └── site.scss │ │ │ │ └── js/ │ │ │ │ ├── signin-redirect.js │ │ │ │ └── signout-redirect.js │ │ │ ├── JavaScriptClient/ │ │ │ │ ├── JavaScriptClient.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Startup.cs │ │ │ │ ├── appsettings.Development.json │ │ │ │ ├── appsettings.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── app.js │ │ │ │ ├── callback.html │ │ │ │ ├── index.html │ │ │ │ └── oidc-client.js │ │ │ └── MvcClient/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Models/ │ │ │ │ └── ErrorViewModel.cs │ │ │ ├── MvcClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Privacy.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ │ └── json.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── 5_EntityFramework/ │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ ├── IdentityServer/ │ │ │ │ ├── Config.cs │ │ │ │ ├── Data/ │ │ │ │ │ └── Migrations/ │ │ │ │ │ └── IdentityServer/ │ │ │ │ │ ├── ConfigurationDb/ │ │ │ │ │ │ ├── 20200625203625_InitialIdentityServerConfigurationDbMigration.Designer.cs │ │ │ │ │ │ ├── 20200625203625_InitialIdentityServerConfigurationDbMigration.cs │ │ │ │ │ │ └── ConfigurationDbContextModelSnapshot.cs │ │ │ │ │ └── PersistedGrantDb/ │ │ │ │ │ ├── 20200625203357_InitialIdentityServerPersistedGrantDbMigration.Designer.cs │ │ │ │ │ ├── 20200625203357_InitialIdentityServerPersistedGrantDbMigration.cs │ │ │ │ │ └── PersistedGrantDbContextModelSnapshot.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── IdentityServer.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Quickstart/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ │ └── DeviceController.cs │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ │ └── HomeController.cs │ │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ │ └── TestUsers.cs │ │ │ │ ├── Startup.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ │ └── Logout.cshtml │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Home/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── libman.json │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ ├── site.css │ │ │ │ │ └── site.scss │ │ │ │ └── js/ │ │ │ │ ├── signin-redirect.js │ │ │ │ └── signout-redirect.js │ │ │ └── MvcClient/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Models/ │ │ │ │ └── ErrorViewModel.cs │ │ │ ├── MvcClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Privacy.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ │ └── json.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── 6_AspNetIdentity/ │ │ │ ├── Quickstart.sln │ │ │ ├── Quickstart.sln.licenseheader │ │ │ └── src/ │ │ │ ├── IdentityServerAspNetIdentity/ │ │ │ │ ├── Config.cs │ │ │ │ ├── Data/ │ │ │ │ │ ├── ApplicationDbContext.cs │ │ │ │ │ └── Migrations/ │ │ │ │ │ ├── 20180109192453_CreateIdentitySchema.Designer.cs │ │ │ │ │ ├── 20180109192453_CreateIdentitySchema.cs │ │ │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ │ ├── GlobalUsings.cs │ │ │ │ ├── IdentityServerAspNetIdentity.csproj │ │ │ │ ├── Models/ │ │ │ │ │ └── ApplicationUser.cs │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Quickstart/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ │ └── DeviceController.cs │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ │ ├── Home/ │ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ │ └── HomeController.cs │ │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ │ └── TestUsers.cs │ │ │ │ ├── SeedData.cs │ │ │ │ ├── Views/ │ │ │ │ │ ├── Account/ │ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ │ └── Logout.cshtml │ │ │ │ │ ├── Consent/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Device/ │ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ │ ├── Diagnostics/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Grants/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Home/ │ │ │ │ │ │ └── Index.cshtml │ │ │ │ │ ├── Shared/ │ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ │ └── _ViewStart.cshtml │ │ │ │ ├── appsettings.json │ │ │ │ ├── libman.json │ │ │ │ ├── updateUI.ps1 │ │ │ │ └── wwwroot/ │ │ │ │ ├── css/ │ │ │ │ │ ├── site.css │ │ │ │ │ └── site.scss │ │ │ │ └── js/ │ │ │ │ ├── signin-redirect.js │ │ │ │ └── signout-redirect.js │ │ │ └── MvcClient/ │ │ │ ├── Controllers/ │ │ │ │ └── HomeController.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Models/ │ │ │ │ └── ErrorViewModel.cs │ │ │ ├── MvcClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Views/ │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Privacy.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ │ └── json.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ └── js/ │ │ │ └── site.js │ │ ├── Directory.Build.props │ │ ├── Quickstart.sln.licenseheader │ │ └── Shared/ │ │ └── src/ │ │ ├── Api/ │ │ │ ├── Api.csproj │ │ │ ├── Program.cs │ │ │ └── Properties/ │ │ │ └── launchSettings.json │ │ ├── Client/ │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── IdentityServer/ │ │ │ ├── Config.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── IdentityServer.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Quickstart/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ ├── Consent/ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ ├── Device/ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ └── DeviceController.cs │ │ │ │ ├── Diagnostics/ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Grants/ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ ├── Home/ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ └── TestUsers.cs │ │ │ ├── Views/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ └── Logout.cshtml │ │ │ │ ├── Consent/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Device/ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ ├── Diagnostics/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Grants/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Home/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ ├── site.css │ │ │ │ └── site.scss │ │ │ └── js/ │ │ │ ├── signin-redirect.js │ │ │ └── signout-redirect.js │ │ └── MvcClient/ │ │ ├── Controllers/ │ │ │ └── HomeController.cs │ │ ├── GlobalUsings.cs │ │ ├── Models/ │ │ │ └── ErrorViewModel.cs │ │ ├── MvcClient.csproj │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── Views/ │ │ │ ├── Home/ │ │ │ │ ├── Index.cshtml │ │ │ │ └── Privacy.cshtml │ │ │ ├── Shared/ │ │ │ │ ├── Error.cshtml │ │ │ │ ├── _Layout.cshtml │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ └── json.cshtml │ │ │ ├── _ViewImports.cshtml │ │ │ └── _ViewStart.cshtml │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── libman.json │ │ └── wwwroot/ │ │ ├── css/ │ │ │ └── site.css │ │ └── js/ │ │ └── site.js │ └── SamplesGlobalUsings.cs ├── src/ │ ├── AspNetIdentity/ │ │ ├── Directory.Build.props │ │ ├── IdentityServer8.AspNetIdentity.sln │ │ ├── README.md │ │ ├── build.cmd │ │ ├── build.ps1 │ │ ├── build.sh │ │ ├── host/ │ │ │ ├── Configuration/ │ │ │ │ ├── Clients.cs │ │ │ │ ├── ClientsConsole.cs │ │ │ │ ├── ClientsWeb.cs │ │ │ │ └── Resources.cs │ │ │ ├── Data/ │ │ │ │ └── ApplicationDbContext.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Host.csproj │ │ │ ├── Models/ │ │ │ │ ├── AccountViewModels/ │ │ │ │ │ ├── ExternalLoginViewModel.cs │ │ │ │ │ ├── ForgotPasswordViewModel.cs │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ ├── LoginWith2faViewModel.cs │ │ │ │ │ ├── LoginWithRecoveryCodeViewModel.cs │ │ │ │ │ ├── RegisterViewModel.cs │ │ │ │ │ └── ResetPasswordViewModel.cs │ │ │ │ ├── ApplicationUser.cs │ │ │ │ └── ManageViewModels/ │ │ │ │ ├── ChangePasswordViewModel.cs │ │ │ │ ├── EnableAuthenticatorViewModel.cs │ │ │ │ ├── ExternalLoginsViewModel.cs │ │ │ │ ├── GenerateRecoveryCodesViewModel.cs │ │ │ │ ├── IndexViewModel.cs │ │ │ │ ├── RemoveLoginViewModel.cs │ │ │ │ ├── SetPasswordViewModel.cs │ │ │ │ └── TwoFactorAuthenticationViewModel.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Quickstart/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ ├── Consent/ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ ├── Device/ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ └── DeviceController.cs │ │ │ │ ├── Diagnostics/ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Grants/ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ ├── Home/ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ └── TestUsers.cs │ │ │ ├── Startup.cs │ │ │ ├── Views/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ └── Logout.cshtml │ │ │ │ ├── Consent/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Device/ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ ├── Diagnostics/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Grants/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Home/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.json │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ ├── site.css │ │ │ │ └── site.scss │ │ │ └── js/ │ │ │ ├── signin-redirect.js │ │ │ └── signout-redirect.js │ │ ├── migrations/ │ │ │ └── SqlServer/ │ │ │ ├── GlobalUsings.cs │ │ │ ├── Migrations/ │ │ │ │ ├── UsersDb/ │ │ │ │ │ ├── 20200323135751_Users.Designer.cs │ │ │ │ │ ├── 20200323135751_Users.cs │ │ │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ │ └── UsersDb.sql │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── SeedData.cs │ │ │ ├── SqlServer.csproj │ │ │ ├── Startup.cs │ │ │ ├── appsettings.json │ │ │ └── builddb.bat │ │ └── src/ │ │ ├── Decorator.cs │ │ ├── GlobalUsings.cs │ │ ├── IdentityServer8.AspNetIdentity.csproj │ │ ├── IdentityServerBuilderExtensions.cs │ │ ├── ProfileService.cs │ │ ├── ResourceOwnerPasswordValidator.cs │ │ ├── SecurityStampValidatorCallback.cs │ │ └── UserClaimsFactory.cs │ ├── Directory.Build.props │ ├── Directory.BuildOld.targets │ ├── EntityFramework/ │ │ ├── Directory.Build.props │ │ ├── IdentityServer8.EntityFramework.sln │ │ ├── README.md │ │ ├── build.cmd │ │ ├── build.ps1 │ │ ├── build.sh │ │ ├── dropdb.bat │ │ ├── host/ │ │ │ ├── GlobalUsings.cs │ │ │ ├── Host.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Quickstart/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ ├── Consent/ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ ├── Device/ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ └── DeviceController.cs │ │ │ │ ├── Diagnostics/ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Grants/ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ ├── Home/ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ └── TestUsers.cs │ │ │ ├── Startup.cs │ │ │ ├── TestOperationalStoreNotification.cs │ │ │ ├── Views/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ └── Logout.cshtml │ │ │ │ ├── Consent/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Device/ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ ├── Diagnostics/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Grants/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Home/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ ├── site.css │ │ │ │ └── site.scss │ │ │ └── js/ │ │ │ ├── signin-redirect.js │ │ │ └── signout-redirect.js │ │ ├── migrations/ │ │ │ └── SqlServer/ │ │ │ ├── Configuration/ │ │ │ │ ├── Clients.cs │ │ │ │ ├── ClientsConsole.cs │ │ │ │ ├── ClientsWeb.cs │ │ │ │ └── Resources.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── SeedData.cs │ │ │ ├── SqlServer.csproj │ │ │ ├── Startup.cs │ │ │ └── appsettings.json │ │ ├── migrations.bat │ │ ├── src/ │ │ │ ├── GlobalUsings.cs │ │ │ ├── IdentityServer8.EntityFramework.csproj │ │ │ ├── IdentityServerEntityFrameworkBuilderExtensions.cs │ │ │ ├── Services/ │ │ │ │ └── CorsPolicyService.cs │ │ │ └── TokenCleanupHost.cs │ │ ├── test/ │ │ │ └── IdentityServer8.EntityFramework.Tests/ │ │ │ ├── DatabaseProviderBuilder.cs │ │ │ ├── DatabaseProviderFixture.cs │ │ │ ├── FakeLogger.cs │ │ │ ├── IdentityServer8.EntityFramework.Tests.csproj │ │ │ ├── IntegrationTest.cs │ │ │ └── Services/ │ │ │ └── CorsPolicyServiceTests.cs │ │ └── updatedb.bat │ ├── EntityFramework.Storage/ │ │ ├── Directory.Build.props │ │ ├── IdentityServer8.EntityFramework.Storage.sln │ │ ├── README.md │ │ ├── build.cmd │ │ ├── build.ps1 │ │ ├── build.sh │ │ ├── host/ │ │ │ ├── ConsoleHost/ │ │ │ │ ├── ConsoleHost.csproj │ │ │ │ ├── GlobalUsings.cs │ │ │ │ └── Program.cs │ │ │ └── Directory.Build.props │ │ ├── migrations/ │ │ │ ├── Directory.Build.props │ │ │ └── SqlServer/ │ │ │ ├── GlobalUsings.cs │ │ │ ├── Migrations/ │ │ │ │ ├── ConfigurationDb/ │ │ │ │ │ ├── 20200522172542_Config.Designer.cs │ │ │ │ │ ├── 20200522172542_Config.cs │ │ │ │ │ └── ConfigurationDbContextModelSnapshot.cs │ │ │ │ ├── ConfigurationDb.sql │ │ │ │ ├── PersistedGrantDb/ │ │ │ │ │ ├── 20200522172538_Grants.Designer.cs │ │ │ │ │ ├── 20200522172538_Grants.cs │ │ │ │ │ └── PersistedGrantDbContextModelSnapshot.cs │ │ │ │ └── PersistedGrantDb.sql │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── SqlServer.csproj │ │ │ ├── Startup.cs │ │ │ ├── appsettings.json │ │ │ ├── buildschema.bat │ │ │ └── createdb.bat │ │ ├── src/ │ │ │ ├── Configuration/ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ ├── DbContexts/ │ │ │ │ ├── ConfigurationDbContext.cs │ │ │ │ └── PersistedGrantDbContext.cs │ │ │ ├── Entities/ │ │ │ │ ├── ApiResource.cs │ │ │ │ ├── ApiResourceClaim.cs │ │ │ │ ├── ApiResourceProperty.cs │ │ │ │ ├── ApiResourceScope.cs │ │ │ │ ├── ApiResourceSecret.cs │ │ │ │ ├── ApiScope.cs │ │ │ │ ├── ApiScopeClaim.cs │ │ │ │ ├── ApiScopeProperty.cs │ │ │ │ ├── Client.cs │ │ │ │ ├── ClientClaim.cs │ │ │ │ ├── ClientCorsOrigin.cs │ │ │ │ ├── ClientGrantType.cs │ │ │ │ ├── ClientIdPRestriction.cs │ │ │ │ ├── ClientPostLogoutRedirectUri.cs │ │ │ │ ├── ClientProperty.cs │ │ │ │ ├── ClientRedirectUri.cs │ │ │ │ ├── ClientScope.cs │ │ │ │ ├── ClientSecret.cs │ │ │ │ ├── DeviceFlowCodes.cs │ │ │ │ ├── IdentityResource.cs │ │ │ │ ├── IdentityResourceClaim.cs │ │ │ │ ├── IdentityResourceProperty.cs │ │ │ │ ├── PersistedGrant.cs │ │ │ │ ├── Property.cs │ │ │ │ ├── Secret.cs │ │ │ │ └── UserClaim.cs │ │ │ ├── Extensions/ │ │ │ │ └── ModelBuilderExtensions.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── IdentityServer8.EntityFramework.Storage.csproj │ │ │ ├── Interfaces/ │ │ │ │ ├── IConfigurationDbContext.cs │ │ │ │ └── IPersistedGrantDbContext.cs │ │ │ ├── Mappers/ │ │ │ │ ├── AllowedSigningAlgorithmsConverter.cs │ │ │ │ ├── ApiResourceMapperProfile.cs │ │ │ │ ├── ApiResourceMappers.cs │ │ │ │ ├── ClientMapperProfile.cs │ │ │ │ ├── ClientMappers.cs │ │ │ │ ├── IdentityResourceMapperProfile.cs │ │ │ │ ├── IdentityResourceMappers.cs │ │ │ │ ├── PersistedGrantMapperProfile.cs │ │ │ │ ├── PersistedGrantMappers.cs │ │ │ │ ├── ScopeMapperProfile.cs │ │ │ │ └── ScopeMappers.cs │ │ │ ├── Options/ │ │ │ │ ├── ConfigurationStoreOptions.cs │ │ │ │ ├── OperationalStoreOptions.cs │ │ │ │ └── TableConfiguration.cs │ │ │ ├── Properties/ │ │ │ │ └── AssemblyInfo.cs │ │ │ ├── Stores/ │ │ │ │ ├── ClientStore.cs │ │ │ │ ├── DeviceFlowStore.cs │ │ │ │ ├── PersistedGrantStore.cs │ │ │ │ └── ResourceStore.cs │ │ │ └── TokenCleanup/ │ │ │ ├── IOperationalStoreNotification.cs │ │ │ └── TokenCleanupService.cs │ │ └── test/ │ │ ├── Directory.Build.props │ │ ├── IntegrationTests/ │ │ │ ├── DatabaseProviderBuilder.cs │ │ │ ├── DatabaseProviderFixture.cs │ │ │ ├── DbContexts/ │ │ │ │ └── ClientDbContextTests.cs │ │ │ ├── FakeLogger.cs │ │ │ ├── IdentityServer8.EntityFramework.IntegrationTests.csproj │ │ │ ├── IntegrationTest.cs │ │ │ ├── Stores/ │ │ │ │ ├── ClientStoreTests.cs │ │ │ │ ├── DeviceFlowStoreTests.cs │ │ │ │ ├── PersistedGrantStoreTests.cs │ │ │ │ └── ResourceStoreTests.cs │ │ │ └── TokenCleanup/ │ │ │ └── TokenCleanupTests.cs │ │ └── UnitTests/ │ │ ├── IdentityServer8.EntityFramework.UnitTests.csproj │ │ └── Mappers/ │ │ ├── ApiResourceMappersTests.cs │ │ ├── ClientMappersTests.cs │ │ ├── IdentityResourcesMappersTests.cs │ │ ├── PersistedGrantMappersTests.cs │ │ └── ScopeMappersTests.cs │ ├── IdentityServer8/ │ │ ├── Directory.Build.props │ │ ├── IdentityServer8.sln │ │ ├── build.cmd │ │ ├── build.ps1 │ │ ├── build.sh │ │ ├── host/ │ │ │ ├── Configuration/ │ │ │ │ ├── Clients.cs │ │ │ │ ├── ClientsConsole.cs │ │ │ │ ├── ClientsWeb.cs │ │ │ │ └── Resources.cs │ │ │ ├── Extensions/ │ │ │ │ ├── ExtensionGrantValidator.cs │ │ │ │ ├── HostProfileService.cs │ │ │ │ ├── NoSubjectExtensionGrantValidator.cs │ │ │ │ ├── ParameterizedScopeParser.cs │ │ │ │ ├── ParameterizedScopeTokenRequestValidator.cs │ │ │ │ └── SameSiteHandlingExtensions.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Host.csproj │ │ │ ├── Keys/ │ │ │ │ ├── identityserver.test.ecdsa.p12 │ │ │ │ └── identityserver.test.rsa.p12 │ │ │ ├── LocalApiController.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Quickstart/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccountController.cs │ │ │ │ │ ├── AccountOptions.cs │ │ │ │ │ ├── ExternalController.cs │ │ │ │ │ ├── ExternalProvider.cs │ │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ │ ├── LoginInputModel.cs │ │ │ │ │ ├── LoginViewModel.cs │ │ │ │ │ ├── LogoutInputModel.cs │ │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ │ └── RedirectViewModel.cs │ │ │ │ ├── Consent/ │ │ │ │ │ ├── ConsentController.cs │ │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ │ ├── ConsentOptions.cs │ │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ │ ├── ProcessConsentResult.cs │ │ │ │ │ └── ScopeViewModel.cs │ │ │ │ ├── Device/ │ │ │ │ │ ├── DeviceAuthorizationInputModel.cs │ │ │ │ │ ├── DeviceAuthorizationViewModel.cs │ │ │ │ │ └── DeviceController.cs │ │ │ │ ├── Diagnostics/ │ │ │ │ │ ├── DiagnosticsController.cs │ │ │ │ │ └── DiagnosticsViewModel.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Grants/ │ │ │ │ │ ├── GrantsController.cs │ │ │ │ │ └── GrantsViewModel.cs │ │ │ │ ├── Home/ │ │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ │ └── HomeController.cs │ │ │ │ ├── SecurityHeadersAttribute.cs │ │ │ │ └── TestUsers.cs │ │ │ ├── Startup.cs │ │ │ ├── Views/ │ │ │ │ ├── Account/ │ │ │ │ │ ├── AccessDenied.cshtml │ │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ │ ├── Login.cshtml │ │ │ │ │ └── Logout.cshtml │ │ │ │ ├── Consent/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Device/ │ │ │ │ │ ├── Success.cshtml │ │ │ │ │ ├── UserCodeCapture.cshtml │ │ │ │ │ └── UserCodeConfirmation.cshtml │ │ │ │ ├── Diagnostics/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Grants/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Home/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── Redirect.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ ├── _Nav.cshtml │ │ │ │ │ ├── _ScopeListItem.cshtml │ │ │ │ │ └── _ValidationSummary.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.json │ │ │ ├── compilerconfig.json │ │ │ ├── compilerconfig.json.defaults │ │ │ ├── libman.json │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ ├── site.css │ │ │ │ └── site.scss │ │ │ └── js/ │ │ │ ├── signin-redirect.js │ │ │ └── signout-redirect.js │ │ ├── src/ │ │ │ ├── Configuration/ │ │ │ │ ├── CryptoHelper.cs │ │ │ │ ├── DependencyInjection/ │ │ │ │ │ ├── BuilderExtensions/ │ │ │ │ │ │ ├── Additional.cs │ │ │ │ │ │ ├── Core.cs │ │ │ │ │ │ ├── Crypto.cs │ │ │ │ │ │ └── InMemory.cs │ │ │ │ │ ├── ConfigureInternalCookieOptions.cs │ │ │ │ │ ├── ConfigureOpenIdConnectOptions.cs │ │ │ │ │ ├── Decorator.cs │ │ │ │ │ ├── IIdentityServerBuilder.cs │ │ │ │ │ ├── IdentityServerBuilder.cs │ │ │ │ │ ├── IdentityServerServiceCollectionExtensions.cs │ │ │ │ │ └── Options/ │ │ │ │ │ ├── AuthenticationOptions.cs │ │ │ │ │ ├── CachingOptions.cs │ │ │ │ │ ├── CorsOptions.cs │ │ │ │ │ ├── CspOptions.cs │ │ │ │ │ ├── DeviceFlowOptions.cs │ │ │ │ │ ├── DiscoveryOptions.cs │ │ │ │ │ ├── EndpointOptions.cs │ │ │ │ │ ├── EventsOptions.cs │ │ │ │ │ ├── IdentityServerOptions.cs │ │ │ │ │ ├── InputLengthRestrictions.cs │ │ │ │ │ ├── LoggingOptions.cs │ │ │ │ │ ├── MtlsOptions.cs │ │ │ │ │ ├── UserInteractionOptions.cs │ │ │ │ │ └── ValidationOptions.cs │ │ │ │ ├── IdentityServerApplicationBuilderExtensions.cs │ │ │ │ └── IdentityServerMiddlewareOptions.cs │ │ │ ├── Constants.cs │ │ │ ├── Endpoints/ │ │ │ │ ├── AuthorizeCallbackEndpoint.cs │ │ │ │ ├── AuthorizeEndpoint.cs │ │ │ │ ├── AuthorizeEndpointBase.cs │ │ │ │ ├── CheckSessionEndpoint.cs │ │ │ │ ├── DeviceAuthorizationEndpoint.cs │ │ │ │ ├── DiscoveryEndpoint.cs │ │ │ │ ├── DiscoveryKeyEndpoint.cs │ │ │ │ ├── EndSessionCallbackEndpoint.cs │ │ │ │ ├── EndSessionEndpoint.cs │ │ │ │ ├── IntrospectionEndpoint.cs │ │ │ │ ├── Results/ │ │ │ │ │ ├── AuthorizeResult.cs │ │ │ │ │ ├── BadRequestResult.cs │ │ │ │ │ ├── CheckSessionResult.cs │ │ │ │ │ ├── ConsentPageResult.cs │ │ │ │ │ ├── CustomRedirectResult.cs │ │ │ │ │ ├── DeviceAuthorizationResult.cs │ │ │ │ │ ├── DiscoveryDocumentResult.cs │ │ │ │ │ ├── EndSessionCallbackResult.cs │ │ │ │ │ ├── EndSessionResult.cs │ │ │ │ │ ├── IntrospectionResult.cs │ │ │ │ │ ├── JsonWebKeysResult.cs │ │ │ │ │ ├── LoginPageResult.cs │ │ │ │ │ ├── ProtectedResourceErrorResult.cs │ │ │ │ │ ├── StatusCodeResult.cs │ │ │ │ │ ├── TokenErrorResult.cs │ │ │ │ │ ├── TokenResult.cs │ │ │ │ │ ├── TokenRevocationErrorResult.cs │ │ │ │ │ └── UserInfoResult.cs │ │ │ │ ├── TokenEndpoint.cs │ │ │ │ ├── TokenRevocationEndpoint.cs │ │ │ │ └── UserInfoEndpoint.cs │ │ │ ├── Events/ │ │ │ │ ├── ApiAuthenticationFailureEvent.cs │ │ │ │ ├── ApiAuthenticationSuccessEvent.cs │ │ │ │ ├── ClientAuthenticationFailureEvent.cs │ │ │ │ ├── ClientAuthenticationSuccessEvent.cs │ │ │ │ ├── ConsentDeniedEvent.cs │ │ │ │ ├── ConsentGrantedEvent.cs │ │ │ │ ├── DeviceAuthorizationFailureEvent.cs │ │ │ │ ├── DeviceAuthorizationSuccessEvent.cs │ │ │ │ ├── GrantsRevokedEvent.cs │ │ │ │ ├── Infrastructure/ │ │ │ │ │ ├── Event.cs │ │ │ │ │ ├── EventCategories.cs │ │ │ │ │ ├── EventIds.cs │ │ │ │ │ └── EventType.cs │ │ │ │ ├── InvalidClientConfiguration.cs │ │ │ │ ├── TokenIntrospectionFailureEvent.cs │ │ │ │ ├── TokenIntrospectionSuccessEvent.cs │ │ │ │ ├── TokenIssuedFailureEvent.cs │ │ │ │ ├── TokenIssuedSuccessEvent.cs │ │ │ │ ├── TokenRevokedSuccessEvent.cs │ │ │ │ ├── UnhandledExceptionEvent.cs │ │ │ │ ├── UserLoginFailureEvent.cs │ │ │ │ ├── UserLoginSuccessEvent.cs │ │ │ │ └── UserLogoutSuccessEvent.cs │ │ │ ├── Extensions/ │ │ │ │ ├── AuthenticationPropertiesExtensions.cs │ │ │ │ ├── AuthorizeResponseExtensions.cs │ │ │ │ ├── ClaimsExtensions.cs │ │ │ │ ├── ClientExtensions.cs │ │ │ │ ├── DateTimeExtensions.cs │ │ │ │ ├── EndpointOptionsExtensions.cs │ │ │ │ ├── HashExtensions.cs │ │ │ │ ├── HttpContextAuthenticationExtensions.cs │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ ├── HttpRequestExtensions.cs │ │ │ │ ├── HttpResponseExtensions.cs │ │ │ │ ├── ICacheExtensions.cs │ │ │ │ ├── IClientStoreExtensions.cs │ │ │ │ ├── IEnumerableExtensions.cs │ │ │ │ ├── IReadableStringCollectionExtensions.cs │ │ │ │ ├── IResourceStoreExtensions.cs │ │ │ │ ├── IUserSessionExtensions.cs │ │ │ │ ├── IdentityServerToolsExtensions.cs │ │ │ │ ├── JsonExtensions.cs │ │ │ │ ├── NameValueCollectionExtensions.cs │ │ │ │ ├── PrincipalExtensions.cs │ │ │ │ ├── ProfileDataRequestContextExtensions.cs │ │ │ │ ├── ResourceExtensions.cs │ │ │ │ ├── ScopeExtensions.cs │ │ │ │ ├── StringsExtensions.cs │ │ │ │ ├── TokenExtensions.cs │ │ │ │ ├── ValidatedAuthorizeRequestExtensions.cs │ │ │ │ └── X509CertificateExtensions.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Hosting/ │ │ │ │ ├── BaseUrlMiddleware.cs │ │ │ │ ├── CorsMiddleware.cs │ │ │ │ ├── CorsPolicyProvider.cs │ │ │ │ ├── Endpoint.cs │ │ │ │ ├── EndpointRouter.cs │ │ │ │ ├── FederatedSignOut/ │ │ │ │ │ ├── AuthenticationRequestHandlerWrapper.cs │ │ │ │ │ ├── AuthenticationRequestSignInHandlerWrapper.cs │ │ │ │ │ ├── AuthenticationRequestSignOutHandlerWrapper.cs │ │ │ │ │ └── FederatedSignoutAuthenticationHandlerProvider.cs │ │ │ │ ├── IEndpointHandler.cs │ │ │ │ ├── IEndpointResult.cs │ │ │ │ ├── IEndpointRouter.cs │ │ │ │ ├── IdentityServerAuthenticationService.cs │ │ │ │ ├── IdentityServerMiddleware.cs │ │ │ │ ├── LocalApiAuthentication/ │ │ │ │ │ ├── LocalApiAuthenticationEvents.cs │ │ │ │ │ ├── LocalApiAuthenticationExtensions.cs │ │ │ │ │ ├── LocalApiAuthenticationHandler.cs │ │ │ │ │ └── LocalApiAuthenticationOptions.cs │ │ │ │ └── MutualTlsEndpointMiddleware.cs │ │ │ ├── IdentityServer8.csproj │ │ │ ├── IdentityServerConstants.cs │ │ │ ├── IdentityServerTools.cs │ │ │ ├── IdentityServerUser.cs │ │ │ ├── Infrastructure/ │ │ │ │ ├── DistributedCacheStateDataFormatter.cs │ │ │ │ ├── MessageCookie.cs │ │ │ │ └── ObjectSerializer.cs │ │ │ ├── Logging/ │ │ │ │ ├── LogSerializer.cs │ │ │ │ └── Models/ │ │ │ │ ├── AuthorizeRequestValidationLog.cs │ │ │ │ ├── AuthorizeResponseLog.cs │ │ │ │ ├── DeviceAuthorizationRequestValidationLog.cs │ │ │ │ ├── EndSessionRequestValidationLog.cs │ │ │ │ ├── TokenRequestValidationLog.cs │ │ │ │ └── TokenValidationLog.cs │ │ │ ├── Models/ │ │ │ │ ├── Contexts/ │ │ │ │ │ ├── IsActiveContext.cs │ │ │ │ │ ├── LogoutNotificationContext.cs │ │ │ │ │ └── ProfileDataRequestContext.cs │ │ │ │ ├── DeviceFlowAuthorizationRequest.cs │ │ │ │ ├── DeviceFlowInteractionResult.cs │ │ │ │ ├── DiscoveryDocument.cs │ │ │ │ ├── Grant.cs │ │ │ │ ├── GrantTypes.cs │ │ │ │ ├── IdentityResources.cs │ │ │ │ ├── JsonWebKey.cs │ │ │ │ ├── Messages/ │ │ │ │ │ ├── AuthorizationRequest.cs │ │ │ │ │ ├── ConsentRequest.cs │ │ │ │ │ ├── ConsentResponse.cs │ │ │ │ │ ├── ErrorMessage.cs │ │ │ │ │ ├── LogoutRequest.cs │ │ │ │ │ └── Message.cs │ │ │ │ ├── ParsedSecret.cs │ │ │ │ ├── SecurityKeyInfo.cs │ │ │ │ ├── TokenCreationRequest.cs │ │ │ │ └── TokenRequestErrors.cs │ │ │ ├── Properties/ │ │ │ │ └── AssemblyInfo.cs │ │ │ ├── ResponseHandling/ │ │ │ │ ├── Default/ │ │ │ │ │ ├── AuthorizeInteractionResponseGenerator.cs │ │ │ │ │ ├── AuthorizeResponseGenerator.cs │ │ │ │ │ ├── DeviceAuthorizationResponseGenerator.cs │ │ │ │ │ ├── DiscoveryResponseGenerator.cs │ │ │ │ │ ├── IntrospectionResponseGenerator.cs │ │ │ │ │ ├── TokenResponseGenerator.cs │ │ │ │ │ ├── TokenRevocationResponseGenerator.cs │ │ │ │ │ └── UserInfoResponseGenerator.cs │ │ │ │ ├── IAuthorizeInteractionResponseGenerator.cs │ │ │ │ ├── IAuthorizeResponseGenerator.cs │ │ │ │ ├── IDeviceAuthorizationResponseGenerator.cs │ │ │ │ ├── IDiscoveryResponseGenerator.cs │ │ │ │ ├── IIntrospectionResponseGenerator.cs │ │ │ │ ├── ITokenResponseGenerator.cs │ │ │ │ ├── ITokenRevocationResponseGenerator.cs │ │ │ │ ├── IUserInfoResponseGenerator.cs │ │ │ │ └── Models/ │ │ │ │ ├── AuthorizeResponse.cs │ │ │ │ ├── DeviceAuthorizationResponse.cs │ │ │ │ ├── InteractionResponse.cs │ │ │ │ ├── TokenErrorResponse.cs │ │ │ │ ├── TokenResponse.cs │ │ │ │ └── TokenRevocationResponse.cs │ │ │ ├── Services/ │ │ │ │ ├── Default/ │ │ │ │ │ ├── BackChannelLogoutHttpClient.cs │ │ │ │ │ ├── DefaultBackChannelLogoutService.cs │ │ │ │ │ ├── DefaultCache.cs │ │ │ │ │ ├── DefaultClaimsService.cs │ │ │ │ │ ├── DefaultConsentService.cs │ │ │ │ │ ├── DefaultCorsPolicyService.cs │ │ │ │ │ ├── DefaultDeviceFlowCodeService.cs │ │ │ │ │ ├── DefaultDeviceFlowInteractionService.cs │ │ │ │ │ ├── DefaultEventService.cs │ │ │ │ │ ├── DefaultEventSink.cs │ │ │ │ │ ├── DefaultHandleGenerationService.cs │ │ │ │ │ ├── DefaultIdentityServerInteractionService.cs │ │ │ │ │ ├── DefaultJwtRequestUriHttpClient.cs │ │ │ │ │ ├── DefaultKeyMaterialService.cs │ │ │ │ │ ├── DefaultPersistedGrantService.cs │ │ │ │ │ ├── DefaultProfileService.cs │ │ │ │ │ ├── DefaultRefreshTokenService.cs │ │ │ │ │ ├── DefaultReplayCache.cs │ │ │ │ │ ├── DefaultTokenCreationService.cs │ │ │ │ │ ├── DefaultTokenService.cs │ │ │ │ │ ├── DefaultUserCodeService.cs │ │ │ │ │ ├── DefaultUserSession.cs │ │ │ │ │ ├── DistributedDeviceFlowThrottlingService.cs │ │ │ │ │ ├── LogoutNotificationService.cs │ │ │ │ │ ├── NumericUserCodeGenerator.cs │ │ │ │ │ ├── OidcReturnUrlParser.cs │ │ │ │ │ └── ReturnUrlParser.cs │ │ │ │ ├── IBackChannelLogoutHttpClient.cs │ │ │ │ ├── IBackChannelLogoutService.cs │ │ │ │ ├── ICache.cs │ │ │ │ ├── IClaimsService.cs │ │ │ │ ├── IConsentService.cs │ │ │ │ ├── IDeviceFlowCodeService.cs │ │ │ │ ├── IDeviceFlowInteractionService.cs │ │ │ │ ├── IDeviceFlowThrottlingService.cs │ │ │ │ ├── IEventService.cs │ │ │ │ ├── IEventSink.cs │ │ │ │ ├── IHandleGenerationService.cs │ │ │ │ ├── IIdentityServerInteractionService.cs │ │ │ │ ├── IJwtRequestUriHttpClient.cs │ │ │ │ ├── IKeyMaterialService.cs │ │ │ │ ├── ILogoutNotificationService.cs │ │ │ │ ├── IPersistedGrantService.cs │ │ │ │ ├── IProfileService.cs │ │ │ │ ├── IRefreshTokenService.cs │ │ │ │ ├── IReplayCache.cs │ │ │ │ ├── IReturnUrlParser.cs │ │ │ │ ├── ITokenCreationService.cs │ │ │ │ ├── ITokenService.cs │ │ │ │ ├── IUserCodeGenerator.cs │ │ │ │ ├── IUserCodeService.cs │ │ │ │ ├── IUserSession.cs │ │ │ │ └── InMemory/ │ │ │ │ └── InMemoryCorsPolicyService.cs │ │ │ ├── Stores/ │ │ │ │ ├── Caching/ │ │ │ │ │ ├── CachingClientStore.cs │ │ │ │ │ ├── CachingCorsPolicyService.cs │ │ │ │ │ └── CachingResourceStore.cs │ │ │ │ ├── Default/ │ │ │ │ │ ├── ConsentMessageStore.cs │ │ │ │ │ ├── DefaultAuthorizationCodeStore.cs │ │ │ │ │ ├── DefaultGrantStore.cs │ │ │ │ │ ├── DefaultReferenceTokenStore.cs │ │ │ │ │ ├── DefaultRefreshTokenStore.cs │ │ │ │ │ ├── DefaultUserConsentStore.cs │ │ │ │ │ ├── DistributedCacheAuthorizationParametersMessageStore.cs │ │ │ │ │ ├── ProtectedDataMessageStore.cs │ │ │ │ │ └── QueryStringAuthorizationParametersMessageStore.cs │ │ │ │ ├── IAuthorizationParametersMessageStore.cs │ │ │ │ ├── IConsentMessageStore.cs │ │ │ │ ├── IMessageStore.cs │ │ │ │ ├── ISigningCredentialStore.cs │ │ │ │ ├── IValidationKeysStore.cs │ │ │ │ ├── InMemory/ │ │ │ │ │ ├── InMemoryClientStore.cs │ │ │ │ │ ├── InMemoryDeviceFlowStore.cs │ │ │ │ │ ├── InMemoryPersistedGrantStore.cs │ │ │ │ │ ├── InMemoryResourcesStore.cs │ │ │ │ │ ├── InMemorySigningCredentialsStore.cs │ │ │ │ │ └── InMemoryValidationKeysStore.cs │ │ │ │ └── ValidatingClientStore.cs │ │ │ ├── Test/ │ │ │ │ ├── IdentityServerBuilderExtensions.cs │ │ │ │ ├── TestUser.cs │ │ │ │ ├── TestUserProfileService.cs │ │ │ │ ├── TestUserResourceOwnerPasswordValidator.cs │ │ │ │ └── TestUserStore.cs │ │ │ └── Validation/ │ │ │ ├── Contexts/ │ │ │ │ ├── ClientConfigurationValidationContext.cs │ │ │ │ ├── CustomAuthorizeRequestValidationContext.cs │ │ │ │ ├── CustomTokenRequestValidationContext.cs │ │ │ │ ├── ExtensionGrantValidationContext.cs │ │ │ │ ├── ResourceOwnerPasswordValidationContext.cs │ │ │ │ └── ResourceValidationContext.cs │ │ │ ├── Default/ │ │ │ │ ├── ApiSecretValidator.cs │ │ │ │ ├── AuthorizeRequestValidator.cs │ │ │ │ ├── BasicAuthenticationSecretParser.cs │ │ │ │ ├── BearerTokenUsageValidator.cs │ │ │ │ ├── ClientSecretValidator.cs │ │ │ │ ├── DefaultClientConfigurationValidator.cs │ │ │ │ ├── DefaultCustomAuthorizeRequestValidator.cs │ │ │ │ ├── DefaultCustomTokenRequestValidator.cs │ │ │ │ ├── DefaultCustomTokenValidator.cs │ │ │ │ ├── DefaultResourceValidator.cs │ │ │ │ ├── DefaultScopeParser.cs │ │ │ │ ├── DeviceAuthorizationRequestValidator.cs │ │ │ │ ├── DeviceCodeValidator.cs │ │ │ │ ├── EndSessionRequestValidator.cs │ │ │ │ ├── ExtensionGrantValidator.cs │ │ │ │ ├── HashedSharedSecretValidator.cs │ │ │ │ ├── IntrospectionRequestValidator.cs │ │ │ │ ├── JwtBearerClientAssertionSecretParser.cs │ │ │ │ ├── JwtRequestValidator.cs │ │ │ │ ├── MutualTlsSecretParser.cs │ │ │ │ ├── NopClientConfigurationValidator.cs │ │ │ │ ├── NotSupportedResouceOwnerCredentialValidator.cs │ │ │ │ ├── PlainTextSharedSecretValidator.cs │ │ │ │ ├── PostBodySecretParser.cs │ │ │ │ ├── PrivateKeyJwtSecretValidator.cs │ │ │ │ ├── ResponseTypeEqualityComparer.cs │ │ │ │ ├── SecretParser.cs │ │ │ │ ├── SecretValidator.cs │ │ │ │ ├── StrictRedirectUriValidator.cs │ │ │ │ ├── StrictRedirectUriValidatorAppAuth.cs │ │ │ │ ├── TokenRequestValidator.cs │ │ │ │ ├── TokenRevocationRequestValidator.cs │ │ │ │ ├── TokenValidator.cs │ │ │ │ ├── UserInfoRequestValidator.cs │ │ │ │ ├── X509NameSecretValidator.cs │ │ │ │ └── X509ThumbprintSecretValidator.cs │ │ │ ├── IApiSecretValidator.cs │ │ │ ├── IAuthorizeRequestValidator.cs │ │ │ ├── IClientConfigurationValidator.cs │ │ │ ├── IClientSecretValidator.cs │ │ │ ├── ICustomAuthorizeRequestValidator.cs │ │ │ ├── ICustomTokenRequestValidator.cs │ │ │ ├── ICustomTokenValidator.cs │ │ │ ├── IDeviceAuthorizationRequestValidator.cs │ │ │ ├── IDeviceCodeValidator.cs │ │ │ ├── IEndSessionRequestValidator.cs │ │ │ ├── IExtensionGrantValidator.cs │ │ │ ├── IIntrospectionRequestValidator.cs │ │ │ ├── IRedirectUriValidator.cs │ │ │ ├── IResourceOwnerPasswordValidator.cs │ │ │ ├── IResourceValidator.cs │ │ │ ├── IScopeParser.cs │ │ │ ├── ISecretParser.cs │ │ │ ├── ISecretValidator.cs │ │ │ ├── ISecretsListParser.cs │ │ │ ├── ISecretsListValidator.cs │ │ │ ├── ITokenRequestValidator.cs │ │ │ ├── ITokenRevocationRequestValidator.cs │ │ │ ├── ITokenValidator.cs │ │ │ ├── IUserInfoRequestValidator.cs │ │ │ └── Models/ │ │ │ ├── AuthorizeRequestValidationResult.cs │ │ │ ├── BearerTokenUsageType.cs │ │ │ ├── BearerTokenUsageValidationResult.cs │ │ │ ├── ClientSecretValidationResult.cs │ │ │ ├── DeviceAuthorizationRequestValidationResult.cs │ │ │ ├── DeviceCodeValidationContext.cs │ │ │ ├── EndSessionCallbackValidationResult.cs │ │ │ ├── EndSessionValidationResult.cs │ │ │ ├── GrantValidationResult.cs │ │ │ ├── IntrospectionRequestValidationResult.cs │ │ │ ├── JwtRequestValidationResult.cs │ │ │ ├── ParsedScopeValidationError.cs │ │ │ ├── ParsedScopeValue.cs │ │ │ ├── ParsedScopesResult.cs │ │ │ ├── ResourceValidationRequest.cs │ │ │ ├── ResourceValidationResult.cs │ │ │ ├── ScopeSecretValidationResult.cs │ │ │ ├── SecretValidationResult.cs │ │ │ ├── TokenRequestValidationResult.cs │ │ │ ├── TokenRevocationRequestValidationResult.cs │ │ │ ├── TokenValidationResult.cs │ │ │ ├── UserInfoRequestValidationResult.cs │ │ │ ├── ValidatedAuthorizeRequest.cs │ │ │ ├── ValidatedDeviceAuthorizationRequest.cs │ │ │ ├── ValidatedEndSessionRequest.cs │ │ │ ├── ValidatedRequest.cs │ │ │ ├── ValidatedTokenRequest.cs │ │ │ └── ValidationResult.cs │ │ └── test/ │ │ ├── IdentityServer.IntegrationTests/ │ │ │ ├── Clients/ │ │ │ │ ├── ClientAssertionClient.cs │ │ │ │ ├── ClientCredentialsAndResourceOwnerClient.cs │ │ │ │ ├── ClientCredentialsClient.cs │ │ │ │ ├── CustomTokenRequestValidatorClient.cs │ │ │ │ ├── CustomTokenResponseClients.cs │ │ │ │ ├── DiscoveryClient.cs │ │ │ │ ├── ExtensionGrantClient.cs │ │ │ │ ├── RefreshTokenClient.cs │ │ │ │ ├── ResourceOwnerClient.cs │ │ │ │ ├── RevocationClient.cs │ │ │ │ ├── Setup/ │ │ │ │ │ ├── Clients.cs │ │ │ │ │ ├── ConfirmationSecretValidator.cs │ │ │ │ │ ├── CustomProfileService.cs │ │ │ │ │ ├── CustomResponseDto.cs │ │ │ │ │ ├── CustomResponseExtensionGrantValidator.cs │ │ │ │ │ ├── CustomResponseResourceOwnerValidator.cs │ │ │ │ │ ├── DynamicParameterExtensionGrantValidator.cs │ │ │ │ │ ├── ExtensionGrantValidator.cs │ │ │ │ │ ├── ExtensionGrantValidator2.cs │ │ │ │ │ ├── NoSubjectExtensionGrantValidator.cs │ │ │ │ │ ├── Scopes.cs │ │ │ │ │ ├── Startup.cs │ │ │ │ │ ├── StartupWithCustomTokenResponses.cs │ │ │ │ │ ├── TestCustomTokenRequestValidator.cs │ │ │ │ │ └── Users.cs │ │ │ │ └── UserInfoClient.cs │ │ │ ├── Common/ │ │ │ │ ├── BrowserClient.cs │ │ │ │ ├── BrowserHandler.cs │ │ │ │ ├── IdentityServerPipeline.cs │ │ │ │ ├── MessageHandlerWrapper.cs │ │ │ │ ├── NetworkHandler.cs │ │ │ │ └── TestCert.cs │ │ │ ├── Conformance/ │ │ │ │ ├── Basic/ │ │ │ │ │ ├── ClientAuthenticationTests.cs │ │ │ │ │ ├── CodeFlowTests.cs │ │ │ │ │ ├── RedirectUriTests.cs │ │ │ │ │ └── ResponseTypeResponseModeTests.cs │ │ │ │ └── Pkce/ │ │ │ │ └── PkceTests.cs │ │ │ ├── Endpoints/ │ │ │ │ ├── Authorize/ │ │ │ │ │ ├── AuthorizeTests.cs │ │ │ │ │ ├── ConsentTests.cs │ │ │ │ │ ├── JwtRequestAuthorizeTests.cs │ │ │ │ │ ├── RestrictAccessTokenViaBrowserTests.cs │ │ │ │ │ └── SessionIdTests.cs │ │ │ │ ├── CheckSession/ │ │ │ │ │ └── CheckSessionTests.cs │ │ │ │ ├── DeviceAuthorization/ │ │ │ │ │ └── DeviceAuthorizationTests.cs │ │ │ │ ├── Discovery/ │ │ │ │ │ └── DiscoveryEndpointTests.cs │ │ │ │ ├── EndSession/ │ │ │ │ │ └── EndSessionTests.cs │ │ │ │ ├── Introspection/ │ │ │ │ │ ├── IntrospectionTests.cs │ │ │ │ │ └── Setup/ │ │ │ │ │ ├── Clients.cs │ │ │ │ │ ├── Scopes.cs │ │ │ │ │ ├── Startup.cs │ │ │ │ │ └── Users.cs │ │ │ │ ├── Revocation/ │ │ │ │ │ └── RevocationTests.cs │ │ │ │ └── Token/ │ │ │ │ └── TokenEndpointTests.cs │ │ │ ├── Extensibility/ │ │ │ │ └── CustomProfileServiceTests.cs │ │ │ ├── IdentityServer.IntegrationTests.csproj │ │ │ ├── Pipeline/ │ │ │ │ ├── CorsTests.cs │ │ │ │ ├── FederatedSignoutTests.cs │ │ │ │ └── SubpathHosting.cs │ │ │ ├── identityserver_testing.cer │ │ │ └── xunit.runner.json │ │ └── IdentityServer.UnitTests/ │ │ ├── Common/ │ │ │ ├── IAuthenticationSchemeHandler.cs │ │ │ ├── MockAuthenticationHandler.cs │ │ │ ├── MockAuthenticationHandlerProvider.cs │ │ │ ├── MockAuthenticationSchemeProvider.cs │ │ │ ├── MockAuthenticationService.cs │ │ │ ├── MockClaimsService.cs │ │ │ ├── MockClientSessionService.cs │ │ │ ├── MockConsentMessageStore.cs │ │ │ ├── MockConsentService.cs │ │ │ ├── MockHttpContextAccessor.cs │ │ │ ├── MockKeyMaterialService.cs │ │ │ ├── MockLogoutNotificationService.cs │ │ │ ├── MockMessageStore.cs │ │ │ ├── MockPersistedGrantService.cs │ │ │ ├── MockProfileService.cs │ │ │ ├── MockReferenceTokenStore.cs │ │ │ ├── MockResourceValidator.cs │ │ │ ├── MockReturnUrlParser.cs │ │ │ ├── MockSessionIdService.cs │ │ │ ├── MockSystemClock.cs │ │ │ ├── MockTokenCreationService.cs │ │ │ ├── MockUserSession.cs │ │ │ ├── NetworkHandler.cs │ │ │ ├── StubAuthorizeResponseGenerator.cs │ │ │ ├── StubClock.cs │ │ │ ├── StubHandleGenerationService.cs │ │ │ ├── TestCert.cs │ │ │ ├── TestEventService.cs │ │ │ ├── TestExtensions.cs │ │ │ ├── TestIdentityServerOptions.cs │ │ │ ├── TestLogger.cs │ │ │ └── TestUserConsentStore.cs │ │ ├── Cors/ │ │ │ ├── MockCorsPolicyProvider.cs │ │ │ ├── MockCorsPolicyService.cs │ │ │ └── PolicyProviderTests.cs │ │ ├── Endpoints/ │ │ │ ├── Authorize/ │ │ │ │ ├── AuthorizeCallbackEndpointTests.cs │ │ │ │ ├── AuthorizeEndpointBaseTests.cs │ │ │ │ ├── AuthorizeEndpointTests.cs │ │ │ │ ├── StubAuthorizeInteractionResponseGenerator.cs │ │ │ │ └── StubAuthorizeRequestValidator.cs │ │ │ ├── EndSession/ │ │ │ │ ├── EndSessionCallbackEndpointTests.cs │ │ │ │ ├── EndSessionCallbackResultTests.cs │ │ │ │ ├── StubBackChannelLogoutClient.cs │ │ │ │ └── StubEndSessionRequestValidator.cs │ │ │ └── Results/ │ │ │ ├── AuthorizeResultTests.cs │ │ │ ├── CheckSessionResultTests.cs │ │ │ ├── EndSessionCallbackResultTests.cs │ │ │ └── EndSessionResultTests.cs │ │ ├── Extensions/ │ │ │ ├── ApiResourceSigningAlgorithmSelectionTests.cs │ │ │ ├── EndpointOptionsExtensionsTests.cs │ │ │ ├── HttpRequestExtensionsTests.cs │ │ │ ├── IResourceStoreExtensionsTests.cs │ │ │ ├── IdentityServerBuilderExtensionsCacheStoreTests.cs │ │ │ ├── IdentityServerBuilderExtensionsCryptoTests.cs │ │ │ ├── JwtPayloadCreationTests.cs │ │ │ ├── StringExtensionsTests.cs │ │ │ └── ValidatedAuthorizeRequestExtensionsTests.cs │ │ ├── Hosting/ │ │ │ └── EndpointRouterTests.cs │ │ ├── IdentityServer.UnitTests.csproj │ │ ├── Infrastructure/ │ │ │ └── ObjectSerializerTests.cs │ │ ├── ResponseHandling/ │ │ │ ├── AuthorizeInteractionResponseGenerator/ │ │ │ │ ├── AuthorizeInteractionResponseGeneratorTests.cs │ │ │ │ ├── AuthorizeInteractionResponseGeneratorTests_Consent.cs │ │ │ │ ├── AuthorizeInteractionResponseGeneratorTests_Custom.cs │ │ │ │ └── AuthorizeInteractionResponseGeneratorTests_Login.cs │ │ │ ├── DeviceAuthorizationResponseGeneratorTests.cs │ │ │ └── UserInfoResponseGeneratorTests.cs │ │ ├── Services/ │ │ │ ├── Default/ │ │ │ │ ├── DefaultClaimsServiceTests.cs │ │ │ │ ├── DefaultConsentServiceTests.cs │ │ │ │ ├── DefaultCorsPolicyServiceTests.cs │ │ │ │ ├── DefaultIdentityServerInteractionServiceTests.cs │ │ │ │ ├── DefaultPersistedGrantServiceTests.cs │ │ │ │ ├── DefaultRefreshTokenServiceTests.cs │ │ │ │ ├── DefaultTokenServiceTests.cs │ │ │ │ ├── DefaultUserSessionTests.cs │ │ │ │ ├── DistributedDeviceFlowThrottlingServiceTests.cs │ │ │ │ └── NumericUserCodeServiceTests.cs │ │ │ └── InMemory/ │ │ │ └── InMemoryCorsPolicyService.cs │ │ ├── Stores/ │ │ │ ├── Default/ │ │ │ │ └── DefaultPersistedGrantStoreTests.cs │ │ │ ├── InMemoryClientStoreTests.cs │ │ │ ├── InMemoryDeviceFlowStoreTests.cs │ │ │ ├── InMemoryPersistedGrantStoreTests.cs │ │ │ └── InMemoryResourcesStoreTests.cs │ │ ├── Validation/ │ │ │ ├── AccessTokenValidation.cs │ │ │ ├── AuthorizeRequest Validation/ │ │ │ │ ├── Authorize_ClientValidation_Code.cs │ │ │ │ ├── Authorize_ClientValidation_IdToken.cs │ │ │ │ ├── Authorize_ClientValidation_Invalid.cs │ │ │ │ ├── Authorize_ClientValidation_Token.cs │ │ │ │ ├── Authorize_ClientValidation_Valid.cs │ │ │ │ ├── Authorize_ProtocolValidation_CustomValidator.cs │ │ │ │ ├── Authorize_ProtocolValidation_Invalid.cs │ │ │ │ ├── Authorize_ProtocolValidation_PKCE.cs │ │ │ │ └── Authorize_ProtocolValidation_Valid.cs │ │ │ ├── BearerTokenUsageValidation.cs │ │ │ ├── ClientConfigurationValidation.cs │ │ │ ├── DeviceAuthorizationRequestValidation.cs │ │ │ ├── DeviceCodeValidation.cs │ │ │ ├── EndSessionRequestValidation/ │ │ │ │ ├── EndSessionRequestValidatorTests.cs │ │ │ │ ├── StubRedirectUriValidator.cs │ │ │ │ └── StubTokenValidator.cs │ │ │ ├── GrantTypesValidation.cs │ │ │ ├── IdentityTokenValidation.cs │ │ │ ├── IntrospectionRequestValidatorTests.cs │ │ │ ├── ResourceValidation.cs │ │ │ ├── ResponseTypeEqualityComparison.cs │ │ │ ├── RevocationRequestValidation.cs │ │ │ ├── Secrets/ │ │ │ │ ├── BasicAuthenticationCredentialParsing.cs │ │ │ │ ├── ClientAssertionSecretParsing.cs │ │ │ │ ├── ClientSecretValidation.cs │ │ │ │ ├── FormPostCredentialParsing.cs │ │ │ │ ├── HashedSharedSecretValidation.cs │ │ │ │ ├── MutualTlsSecretValidation.cs │ │ │ │ ├── PlainTextClientSecretValidation.cs │ │ │ │ ├── PrivateKeyJwtSecretValidation.cs │ │ │ │ └── SecretValidation.cs │ │ │ ├── Setup/ │ │ │ │ ├── ClientValidationTestClients.cs │ │ │ │ ├── Factory.cs │ │ │ │ ├── TestClients.cs │ │ │ │ ├── TestDeviceCodeValidator.cs │ │ │ │ ├── TestDeviceFlowThrottlingService.cs │ │ │ │ ├── TestGrantValidator.cs │ │ │ │ ├── TestProfileService.cs │ │ │ │ ├── TestResourceOwnerPasswordValidator.cs │ │ │ │ ├── TestScopes.cs │ │ │ │ ├── TestTokenValidator.cs │ │ │ │ ├── TokenFactory.cs │ │ │ │ └── ValidationExtensions.cs │ │ │ ├── StrictRedirectUriValidatorAppAuthValidation.cs │ │ │ ├── TokenRequest Validation/ │ │ │ │ ├── TokenRequestValidation_ClientCredentials_Invalid.cs │ │ │ │ ├── TokenRequestValidation_Code_Invalid.cs │ │ │ │ ├── TokenRequestValidation_DeviceCode_Invalid.cs │ │ │ │ ├── TokenRequestValidation_ExtensionGrants_Invalid.cs │ │ │ │ ├── TokenRequestValidation_General_Invalid.cs │ │ │ │ ├── TokenRequestValidation_PKCE.cs │ │ │ │ ├── TokenRequestValidation_RefreshToken_Invalid.cs │ │ │ │ ├── TokenRequestValidation_ResourceOwner_Invalid.cs │ │ │ │ └── TokenRequestValidation_Valid.cs │ │ │ └── UserInfoRequestValidation.cs │ │ ├── identityserver_testing.cer │ │ └── xunit.runner.json │ ├── IdentityServer8.sln │ ├── IdentityServer8.sln.licenseheader │ ├── Security/ │ │ ├── Directory.Build.props │ │ ├── IdentityServer8.Security/ │ │ │ ├── Extensions.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── IdentityServer8.Security.csproj │ │ │ ├── RedirectService.cs │ │ │ ├── RedirectUrlParser.cs │ │ │ ├── RedirectUrlServiceExtensions.cs │ │ │ ├── Sanitizer.cs │ │ │ └── SanitizerServiceExtensions.cs │ │ └── test/ │ │ └── IdentityServer8.Santizer.Tests/ │ │ ├── IdentityServer8.Sanitizer.Tests.csproj │ │ ├── RedirectServiceTests.cs │ │ └── Services/ │ │ └── SanitizerTests.cs │ └── Storage/ │ ├── Directory.Build.props │ ├── IdentityServer8.Storage.sln │ ├── README.md │ ├── build/ │ │ ├── Program.cs │ │ └── build.csproj │ ├── build.cmd │ ├── build.ps1 │ ├── build.sh │ └── src/ │ ├── Constants.cs │ ├── Extensions/ │ │ ├── IEnumerableExtensions.cs │ │ ├── PersistedGrantFilterExtensions.cs │ │ └── StringsExtensions.cs │ ├── GlobalUsings.cs │ ├── IdentityServer8.Storage.csproj │ ├── IdentityServerConstants.cs │ ├── IdentityServerUser.cs │ ├── Models/ │ │ ├── ApiResource.cs │ │ ├── ApiScope.cs │ │ ├── AuthorizationCode.cs │ │ ├── Client.cs │ │ ├── ClientClaim.cs │ │ ├── Consent.cs │ │ ├── DeviceCode.cs │ │ ├── Enums.cs │ │ ├── GrantType.cs │ │ ├── IdentityResource.cs │ │ ├── PersistedGrant.cs │ │ ├── RefreshToken.cs │ │ ├── Resource.cs │ │ ├── Resources.cs │ │ ├── Secret.cs │ │ └── Token.cs │ ├── Services/ │ │ └── ICorsPolicyService.cs │ └── Stores/ │ ├── IAuthorizationCodeStore.cs │ ├── IClientStore.cs │ ├── IDeviceFlowStore.cs │ ├── IPersistedGrantStore.cs │ ├── IReferenceTokenStore.cs │ ├── IRefreshTokenStore.cs │ ├── IResourceStore.cs │ ├── IUserConsentStore.cs │ ├── PersistedGrantFilter.cs │ └── Serialization/ │ ├── ClaimConverter.cs │ ├── ClaimLite.cs │ ├── ClaimsPrincipalConverter.cs │ ├── ClaimsPrincipalLite.cs │ ├── CustomContractResolver.cs │ ├── IPersistentGrantSerializer.cs │ └── PersistentGrantSerializer.cs └── version.json