From e751db0739559c289c02dc89344bc11654d19fda Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Tue, 15 Jan 2019 13:12:54 -0800 Subject: [PATCH 1/9] Make Auth Samples Project Ref (#6557) --- build/buildorder.props | 1 - build/submodules.props | 3 - src/AuthSamples/.gitignore | 37 -- src/AuthSamples/AuthSamples.sln | 116 ----- src/AuthSamples/Directory.Build.props | 17 - src/AuthSamples/Directory.Build.targets | 7 - src/AuthSamples/NuGetPackageVerifier.json | 7 - src/AuthSamples/README.md | 15 - src/AuthSamples/build/dependencies.props | 81 ---- src/AuthSamples/build/repo.props | 8 - src/AuthSamples/build/sources.props | 17 - .../ClaimsTransformation.csproj | 15 - .../samples/Cookies/Cookies.csproj | 15 - .../DynamicSchemes/DynamicSchemes.csproj | 24 - .../Identity.ExternalClaims.csproj | 30 -- .../PathSchemeSelection.csproj | 16 - .../AuthSamples.FunctionalTests.csproj | 31 -- src/Security/AuthSamples.sln | 411 ++++++++++++++++++ .../samples/ClaimsTransformation/.bowerrc | 0 .../ClaimsTransformation.csproj | 15 + .../ClaimsTransformation/ClaimsTransformer.cs | 0 .../Controllers/AccountController.cs | 0 .../Controllers/HomeController.cs | 0 .../Models/ErrorViewModel.cs | 0 .../samples/ClaimsTransformation/Program.cs | 0 .../samples/ClaimsTransformation/README.md | 0 .../samples/ClaimsTransformation/Startup.cs | 0 .../Views/Account/AccessDenied.cshtml | 0 .../Views/Account/Login.cshtml | 0 .../Views/Home/Index.cshtml | 0 .../Views/Home/MyClaims.cshtml | 0 .../Views/Shared/Error.cshtml | 0 .../Views/Shared/_Layout.cshtml | 0 .../Shared/_ValidationScriptsPartial.cshtml | 0 .../Views/_ViewImports.cshtml | 0 .../Views/_ViewStart.cshtml | 0 .../appsettings.Development.json | 0 .../ClaimsTransformation/appsettings.json | 0 .../samples/ClaimsTransformation/bower.json | 0 .../ClaimsTransformation/bundleconfig.json | 0 .../ClaimsTransformation/wwwroot/css/site.css | 0 .../wwwroot/css/site.min.css | 0 .../ClaimsTransformation/wwwroot/favicon.ico | Bin .../wwwroot/images/banner1.svg | 0 .../wwwroot/images/banner2.svg | 0 .../wwwroot/images/banner3.svg | 0 .../wwwroot/images/banner4.svg | 0 .../ClaimsTransformation/wwwroot/js/site.js | 0 .../wwwroot/js/site.min.js | 0 .../wwwroot/lib/bootstrap/.bower.json | 0 .../wwwroot/lib/bootstrap/LICENSE | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.min.css | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/dist/js/bootstrap.js | 0 .../lib/bootstrap/dist/js/bootstrap.min.js | 0 .../wwwroot/lib/bootstrap/dist/js/npm.js | 0 .../jquery-validation-unobtrusive/.bower.json | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/.bower.json | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../dist/additional-methods.min.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../dist/jquery.validate.min.js | 0 .../wwwroot/lib/jquery/.bower.json | 0 .../wwwroot/lib/jquery/LICENSE.txt | 0 .../wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../samples/Cookies/.bowerrc | 0 .../samples/Cookies/ConfigureMyCookie.cs | 0 .../Cookies/Controllers/AccountController.cs | 0 .../Cookies/Controllers/HomeController.cs | 0 src/Security/samples/Cookies/Cookies.csproj | 15 + .../samples/Cookies/Models/ErrorViewModel.cs | 0 .../samples/Cookies/Program.cs | 0 .../samples/Cookies/README.md | 0 .../samples/Cookies/Startup.cs | 0 .../Cookies/Views/Account/AccessDenied.cshtml | 0 .../Cookies/Views/Account/Login.cshtml | 0 .../samples/Cookies/Views/Home/Index.cshtml | 0 .../Cookies/Views/Home/MyClaims.cshtml | 0 .../samples/Cookies/Views/Shared/Error.cshtml | 0 .../Cookies/Views/Shared/_Layout.cshtml | 0 .../Shared/_ValidationScriptsPartial.cshtml | 0 .../samples/Cookies/Views/_ViewImports.cshtml | 0 .../samples/Cookies/Views/_ViewStart.cshtml | 0 .../Cookies/appsettings.Development.json | 0 .../samples/Cookies/appsettings.json | 0 .../samples/Cookies/bower.json | 0 .../samples/Cookies/bundleconfig.json | 0 .../samples/Cookies/wwwroot/css/site.css | 0 .../samples/Cookies/wwwroot/css/site.min.css | 0 .../samples/Cookies/wwwroot/favicon.ico | Bin .../Cookies/wwwroot/images/banner1.svg | 0 .../Cookies/wwwroot/images/banner2.svg | 0 .../Cookies/wwwroot/images/banner3.svg | 0 .../Cookies/wwwroot/images/banner4.svg | 0 .../samples/Cookies/wwwroot/js/site.js | 0 .../samples/Cookies/wwwroot/js/site.min.js | 0 .../Cookies/wwwroot/lib/bootstrap/.bower.json | 0 .../Cookies/wwwroot/lib/bootstrap/LICENSE | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.min.css | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/dist/js/bootstrap.js | 0 .../lib/bootstrap/dist/js/bootstrap.min.js | 0 .../wwwroot/lib/bootstrap/dist/js/npm.js | 0 .../jquery-validation-unobtrusive/.bower.json | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/.bower.json | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../dist/additional-methods.min.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../dist/jquery.validate.min.js | 0 .../Cookies/wwwroot/lib/jquery/.bower.json | 0 .../Cookies/wwwroot/lib/jquery/LICENSE.txt | 0 .../Cookies/wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../Controllers/AuthController.cs | 0 .../DynamicSchemes/DynamicSchemes.csproj | 25 ++ .../samples/DynamicSchemes/Pages/About.cshtml | 0 .../DynamicSchemes/Pages/About.cshtml.cs | 0 .../DynamicSchemes/Pages/Contact.cshtml | 0 .../DynamicSchemes/Pages/Contact.cshtml.cs | 0 .../samples/DynamicSchemes/Pages/Error.cshtml | 0 .../DynamicSchemes/Pages/Error.cshtml.cs | 0 .../samples/DynamicSchemes/Pages/Index.cshtml | 0 .../DynamicSchemes/Pages/Index.cshtml.cs | 0 .../DynamicSchemes/Pages/_Layout.cshtml | 0 .../Pages/_ValidationScriptsPartial.cshtml | 0 .../DynamicSchemes/Pages/_ViewImports.cshtml | 0 .../DynamicSchemes/Pages/_ViewStart.cshtml | 0 .../samples/DynamicSchemes/Program.cs | 0 .../samples/DynamicSchemes/README.md | 0 .../DynamicSchemes/SimpleAuthHandler.cs | 0 .../samples/DynamicSchemes/Startup.cs | 0 .../appsettings.Development.json | 0 .../samples/DynamicSchemes/appsettings.json | 0 .../samples/DynamicSchemes/bundleconfig.json | 0 .../DynamicSchemes/wwwroot/css/site.css | 0 .../DynamicSchemes/wwwroot/css/site.min.css | 0 .../DynamicSchemes/wwwroot/favicon.ico | Bin .../DynamicSchemes/wwwroot/images/banner1.svg | 0 .../DynamicSchemes/wwwroot/images/banner2.svg | 0 .../DynamicSchemes/wwwroot/images/banner3.svg | 0 .../DynamicSchemes/wwwroot/images/banner4.svg | 0 .../samples/DynamicSchemes/wwwroot/js/site.js | 0 .../DynamicSchemes/wwwroot/js/site.min.js | 0 .../wwwroot/lib/bootstrap/.bower.json | 0 .../wwwroot/lib/bootstrap/LICENSE | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/dist/js/bootstrap.js | 0 .../wwwroot/lib/bootstrap/dist/js/npm.js | 0 .../jquery-validation-unobtrusive/.bower.json | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/.bower.json | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../wwwroot/lib/jquery/.bower.json | 0 .../wwwroot/lib/jquery/LICENSE.txt | 0 .../wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../Controllers/AccountController.cs | 0 .../Data/ApplicationDbContext.cs | 0 .../Data/ApplicationUser.cs | 0 ...000000000_CreateIdentitySchema.Designer.cs | 0 .../00000000000000_CreateIdentitySchema.cs | 0 .../ApplicationDbContextModelSnapshot.cs | 0 .../Extensions/EmailSenderExtensions.cs | 0 .../Extensions/UrlHelperExtensions.cs | 0 .../Identity.ExternalClaims.csproj | 30 ++ .../Pages/Account/AccessDenied.cshtml | 0 .../Pages/Account/AccessDenied.cshtml.cs | 0 .../Pages/Account/ConfirmEmail.cshtml | 0 .../Pages/Account/ConfirmEmail.cshtml.cs | 0 .../Pages/Account/ExternalLogin.cshtml | 0 .../Pages/Account/ExternalLogin.cshtml.cs | 0 .../Pages/Account/ForgotPassword.cshtml | 0 .../Pages/Account/ForgotPassword.cshtml.cs | 0 .../Account/ForgotPasswordConfirmation.cshtml | 0 .../ForgotPasswordConfirmation.cshtml.cs | 0 .../Pages/Account/Lockout.cshtml | 0 .../Pages/Account/Lockout.cshtml.cs | 0 .../Pages/Account/Login.cshtml | 0 .../Pages/Account/Login.cshtml.cs | 0 .../Pages/Account/LoginWith2fa.cshtml | 0 .../Pages/Account/LoginWith2fa.cshtml.cs | 0 .../Account/LoginWithRecoveryCode.cshtml | 0 .../Account/LoginWithRecoveryCode.cshtml.cs | 0 .../Account/Manage/ChangePassword.cshtml | 0 .../Account/Manage/ChangePassword.cshtml.cs | 0 .../Pages/Account/Manage/Disable2fa.cshtml | 0 .../Pages/Account/Manage/Disable2fa.cshtml.cs | 0 .../Account/Manage/EnableAuthenticator.cshtml | 0 .../Manage/EnableAuthenticator.cshtml.cs | 0 .../Account/Manage/ExternalLogins.cshtml | 0 .../Account/Manage/ExternalLogins.cshtml.cs | 0 .../Manage/GenerateRecoveryCodes.cshtml | 0 .../Manage/GenerateRecoveryCodes.cshtml.cs | 0 .../Pages/Account/Manage/Index.cshtml | 0 .../Pages/Account/Manage/Index.cshtml.cs | 0 .../Pages/Account/Manage/ManageNavPages.cs | 0 .../Account/Manage/ResetAuthenticator.cshtml | 0 .../Manage/ResetAuthenticator.cshtml.cs | 0 .../Pages/Account/Manage/SetPassword.cshtml | 0 .../Account/Manage/SetPassword.cshtml.cs | 0 .../Manage/TwoFactorAuthentication.cshtml | 0 .../Manage/TwoFactorAuthentication.cshtml.cs | 0 .../Pages/Account/Manage/_Layout.cshtml | 0 .../Pages/Account/Manage/_ManageNav.cshtml | 0 .../Account/Manage/_StatusMessage.cshtml | 0 .../Pages/Account/Manage/_ViewImports.cshtml | 0 .../Pages/Account/Register.cshtml | 0 .../Pages/Account/Register.cshtml.cs | 0 .../Pages/Account/ResetPassword.cshtml | 0 .../Pages/Account/ResetPassword.cshtml.cs | 0 .../Account/ResetPasswordConfirmation.cshtml | 0 .../ResetPasswordConfirmation.cshtml.cs | 0 .../Pages/Account/SignedOut.cshtml | 0 .../Pages/Account/SignedOut.cshtml.cs | 0 .../Pages/Account/_ViewImports.cshtml | 0 .../Pages/Contact.cshtml | 0 .../Pages/Contact.cshtml.cs | 0 .../Pages/Error.cshtml | 0 .../Pages/Error.cshtml.cs | 0 .../Pages/Index.cshtml | 0 .../Pages/Index.cshtml.cs | 0 .../Pages/MyClaims.cshtml | 0 .../Pages/MyClaims.cshtml.cs | 0 .../Pages/_Layout.cshtml | 0 .../Pages/_LoginPartial.cshtml | 0 .../Pages/_ValidationScriptsPartial.cshtml | 0 .../Pages/_ViewImports.cshtml | 0 .../Pages/_ViewStart.cshtml | 0 .../Identity.ExternalClaims/Program.cs | 0 .../samples/Identity.ExternalClaims/README.md | 0 .../Services/EmailSender.cs | 0 .../Services/IEmailSender.cs | 0 .../Identity.ExternalClaims/Startup.cs | 0 .../appsettings.Development.json | 0 .../Identity.ExternalClaims/appsettings.json | 0 .../Identity.ExternalClaims/bundleconfig.json | 0 .../wwwroot/css/site.css | 0 .../wwwroot/css/site.min.css | 0 .../wwwroot/favicon.ico | Bin .../wwwroot/images/banner1.svg | 0 .../wwwroot/images/banner2.svg | 0 .../wwwroot/images/banner3.svg | 0 .../wwwroot/images/banner4.svg | 0 .../wwwroot/js/site.js | 0 .../wwwroot/js/site.min.js | 0 .../wwwroot/lib/bootstrap/.bower.json | 0 .../wwwroot/lib/bootstrap/LICENSE | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/dist/js/bootstrap.js | 0 .../wwwroot/lib/bootstrap/dist/js/npm.js | 0 .../jquery-validation-unobtrusive/.bower.json | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/.bower.json | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../wwwroot/lib/jquery/.bower.json | 0 .../wwwroot/lib/jquery/LICENSE.txt | 0 .../wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../samples/PathSchemeSelection/.bowerrc | 0 .../Controllers/AccountController.cs | 0 .../Controllers/HomeController.cs | 0 .../Models/ErrorViewModel.cs | 0 .../PathSchemeSelection.csproj | 15 + .../samples/PathSchemeSelection/Program.cs | 0 .../samples/PathSchemeSelection/README.md | 0 .../samples/PathSchemeSelection/Startup.cs | 0 .../Views/Account/AccessDenied.cshtml | 0 .../Views/Account/Login.cshtml | 0 .../Views/Home/Index.cshtml | 0 .../Views/Home/MyClaims.cshtml | 0 .../Views/Shared/Error.cshtml | 0 .../Views/Shared/_Layout.cshtml | 0 .../Shared/_ValidationScriptsPartial.cshtml | 0 .../Views/_ViewImports.cshtml | 0 .../Views/_ViewStart.cshtml | 0 .../appsettings.Development.json | 0 .../PathSchemeSelection/appsettings.json | 0 .../samples/PathSchemeSelection/bower.json | 0 .../PathSchemeSelection/bundleconfig.json | 0 .../PathSchemeSelection/wwwroot/css/site.css | 0 .../wwwroot/css/site.min.css | 0 .../PathSchemeSelection/wwwroot/favicon.ico | Bin .../wwwroot/images/banner1.svg | 0 .../wwwroot/images/banner2.svg | 0 .../wwwroot/images/banner3.svg | 0 .../wwwroot/images/banner4.svg | 0 .../PathSchemeSelection/wwwroot/js/site.js | 0 .../wwwroot/js/site.min.js | 0 .../wwwroot/lib/bootstrap/.bower.json | 0 .../wwwroot/lib/bootstrap/LICENSE | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.min.css | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/dist/js/bootstrap.js | 0 .../lib/bootstrap/dist/js/bootstrap.min.js | 0 .../wwwroot/lib/bootstrap/dist/js/npm.js | 0 .../jquery-validation-unobtrusive/.bower.json | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/.bower.json | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../dist/additional-methods.min.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../dist/jquery.validate.min.js | 0 .../wwwroot/lib/jquery/.bower.json | 0 .../wwwroot/lib/jquery/LICENSE.txt | 0 .../wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../AuthSamples.FunctionalTests.csproj | 32 ++ .../ClaimsTransformTests.cs | 0 .../CookiesTests.cs | 0 .../DynamicSchemeTests.cs | 0 .../IdentityExternalClaimsTests.cs | 0 .../PathSchemeSelectionTests.cs | 0 .../TestServices.cs | 0 .../xunit.runner.json | 0 385 files changed, 543 insertions(+), 440 deletions(-) delete mode 100644 src/AuthSamples/.gitignore delete mode 100644 src/AuthSamples/AuthSamples.sln delete mode 100644 src/AuthSamples/Directory.Build.props delete mode 100644 src/AuthSamples/Directory.Build.targets delete mode 100644 src/AuthSamples/NuGetPackageVerifier.json delete mode 100644 src/AuthSamples/README.md delete mode 100644 src/AuthSamples/build/dependencies.props delete mode 100644 src/AuthSamples/build/repo.props delete mode 100644 src/AuthSamples/build/sources.props delete mode 100644 src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformation.csproj delete mode 100644 src/AuthSamples/samples/Cookies/Cookies.csproj delete mode 100644 src/AuthSamples/samples/DynamicSchemes/DynamicSchemes.csproj delete mode 100644 src/AuthSamples/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj delete mode 100644 src/AuthSamples/samples/PathSchemeSelection/PathSchemeSelection.csproj delete mode 100644 src/AuthSamples/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj create mode 100644 src/Security/AuthSamples.sln rename src/{AuthSamples => Security}/samples/ClaimsTransformation/.bowerrc (100%) create mode 100644 src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj rename src/{AuthSamples => Security}/samples/ClaimsTransformation/ClaimsTransformer.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Controllers/AccountController.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Controllers/HomeController.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Models/ErrorViewModel.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Program.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/README.md (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Startup.cs (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Account/AccessDenied.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Account/Login.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Home/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Home/MyClaims.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Shared/Error.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Shared/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/Shared/_ValidationScriptsPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/Views/_ViewStart.cshtml (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/appsettings.Development.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/appsettings.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/bower.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/bundleconfig.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/css/site.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/css/site.min.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/favicon.ico (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/images/banner1.svg (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/images/banner2.svg (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/images/banner3.svg (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/images/banner4.svg (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/js/site.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/js/site.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/.bower.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/npm.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/.bower.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/.bower.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery/.bower.json (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.js (100%) rename src/{AuthSamples => Security}/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.map (100%) rename src/{AuthSamples => Security}/samples/Cookies/.bowerrc (100%) rename src/{AuthSamples => Security}/samples/Cookies/ConfigureMyCookie.cs (100%) rename src/{AuthSamples => Security}/samples/Cookies/Controllers/AccountController.cs (100%) rename src/{AuthSamples => Security}/samples/Cookies/Controllers/HomeController.cs (100%) create mode 100644 src/Security/samples/Cookies/Cookies.csproj rename src/{AuthSamples => Security}/samples/Cookies/Models/ErrorViewModel.cs (100%) rename src/{AuthSamples => Security}/samples/Cookies/Program.cs (100%) rename src/{AuthSamples => Security}/samples/Cookies/README.md (100%) rename src/{AuthSamples => Security}/samples/Cookies/Startup.cs (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Account/AccessDenied.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Account/Login.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Home/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Home/MyClaims.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Shared/Error.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Shared/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/Shared/_ValidationScriptsPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/Views/_ViewStart.cshtml (100%) rename src/{AuthSamples => Security}/samples/Cookies/appsettings.Development.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/appsettings.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/bower.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/bundleconfig.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/css/site.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/css/site.min.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/favicon.ico (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/images/banner1.svg (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/images/banner2.svg (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/images/banner3.svg (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/images/banner4.svg (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/js/site.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/js/site.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/bootstrap/dist/js/npm.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.js (100%) rename src/{AuthSamples => Security}/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.map (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Controllers/AuthController.cs (100%) create mode 100644 src/Security/samples/DynamicSchemes/DynamicSchemes.csproj rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/About.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/About.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Contact.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Contact.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Error.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Error.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/Index.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/_ValidationScriptsPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Pages/_ViewStart.cshtml (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Program.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/README.md (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/SimpleAuthHandler.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/Startup.cs (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/appsettings.Development.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/appsettings.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/bundleconfig.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/css/site.css (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/css/site.min.css (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/favicon.ico (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/images/banner1.svg (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/images/banner2.svg (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/images/banner3.svg (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/images/banner4.svg (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/js/site.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/js/site.min.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/.bower.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/npm.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/.bower.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation/.bower.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery/.bower.json (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{AuthSamples => Security}/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.min.map (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Controllers/AccountController.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Data/ApplicationDbContext.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Data/ApplicationUser.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Data/Migrations/ApplicationDbContextModelSnapshot.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Extensions/EmailSenderExtensions.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Extensions/UrlHelperExtensions.cs (100%) create mode 100644 src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ManageNavPages.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/_ManageNav.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/_StatusMessage.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Manage/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Account/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Contact.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Contact.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Error.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Error.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/Index.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/_LoginPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/_ValidationScriptsPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Pages/_ViewStart.cshtml (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Program.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/README.md (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Services/EmailSender.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Services/IEmailSender.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/Startup.cs (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/appsettings.Development.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/appsettings.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/bundleconfig.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/css/site.css (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/css/site.min.css (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/favicon.ico (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/images/banner1.svg (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/images/banner2.svg (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/images/banner3.svg (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/images/banner4.svg (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/js/site.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/js/site.min.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/npm.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery/.bower.json (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{AuthSamples => Security}/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.min.map (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/.bowerrc (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Controllers/AccountController.cs (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Controllers/HomeController.cs (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Models/ErrorViewModel.cs (100%) create mode 100644 src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Program.cs (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/README.md (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Startup.cs (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Account/AccessDenied.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Account/Login.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Home/Index.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Home/MyClaims.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Shared/Error.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Shared/_Layout.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/Shared/_ValidationScriptsPartial.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/_ViewImports.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/Views/_ViewStart.cshtml (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/appsettings.Development.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/appsettings.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/bower.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/bundleconfig.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/css/site.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/css/site.min.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/favicon.ico (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/images/banner1.svg (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/images/banner2.svg (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/images/banner3.svg (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/images/banner4.svg (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/js/site.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/js/site.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/.bower.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/npm.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/.bower.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/.bower.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery/.bower.json (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.js (100%) rename src/{AuthSamples => Security}/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.map (100%) create mode 100644 src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/ClaimsTransformTests.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/CookiesTests.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/IdentityExternalClaimsTests.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/PathSchemeSelectionTests.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/TestServices.cs (100%) rename src/{AuthSamples => Security}/test/AuthSamples.FunctionalTests/xunit.runner.json (100%) diff --git a/build/buildorder.props b/build/buildorder.props index fc8d980067..9cbb7bb540 100644 --- a/build/buildorder.props +++ b/build/buildorder.props @@ -9,7 +9,6 @@ - diff --git a/build/submodules.props b/build/submodules.props index a9ded11773..0bf978d90b 100644 --- a/build/submodules.props +++ b/build/submodules.props @@ -39,8 +39,5 @@ - - - diff --git a/src/AuthSamples/.gitignore b/src/AuthSamples/.gitignore deleted file mode 100644 index 708c4155fa..0000000000 --- a/src/AuthSamples/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -[Oo]bj/ -[Bb]in/ -TestResults/ -.nuget/ -*.sln.ide/ -_ReSharper.*/ -.idea/ -packages/ -artifacts/ -PublishProfiles/ -.vs/ -*.user -*.suo -*.cache -*.docstates -_ReSharper.* -nuget.exe -*net45.csproj -*net451.csproj -*k10.csproj -*.psess -*.vsp -*.pidb -*.userprefs -*DS_Store -*.ncrunchsolution -*.*sdf -*.ipch -*.swp -*~ -.build/ -.testPublish/ -launchSettings.json -BenchmarkDotNet.Artifacts/ -BDN.Generated/ -binaries/ -global.json diff --git a/src/AuthSamples/AuthSamples.sln b/src/AuthSamples/AuthSamples.sln deleted file mode 100644 index dce68db1f9..0000000000 --- a/src/AuthSamples/AuthSamples.sln +++ /dev/null @@ -1,116 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2003 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{CA4538F5-9DA8-4139-B891-A13279889F79}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{DA474CFD-7419-4747-A583-CCDC1FF71EB5}" - ProjectSection(SolutionItems) = preProject - build\common.props = build\common.props - build\dependencies.props = build\dependencies.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cookies", "samples\Cookies\Cookies.csproj", "{5FA7ABB3-5285-4101-B25E-0C8178ECDA50}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClaimsTransformation", "samples\ClaimsTransformation\ClaimsTransformation.csproj", "{526BE3AE-3DD3-4AB6-BC81-AC34ED735482}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{15E42EAC-5CBB-49EC-91FB-53743882CF2B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthSamples.FunctionalTests", "test\AuthSamples.FunctionalTests\AuthSamples.FunctionalTests.csproj", "{B5C26BE6-655E-4D7F-B756-F286750EF172}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PathSchemeSelection", "samples\PathSchemeSelection\PathSchemeSelection.csproj", "{4E91BD2A-616F-45EE-9647-2F1608D17FB9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.ExternalClaims", "samples\Identity.ExternalClaims\Identity.ExternalClaims.csproj", "{D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicSchemes", "samples\DynamicSchemes\DynamicSchemes.csproj", "{F2F7A64C-870C-40C9-B5FC-F8952F1572B3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Debug|x64.ActiveCfg = Debug|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Debug|x86.ActiveCfg = Debug|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Release|Any CPU.Build.0 = Release|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Release|x64.ActiveCfg = Release|Any CPU - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50}.Release|x86.ActiveCfg = Release|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Debug|Any CPU.Build.0 = Debug|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Debug|x64.ActiveCfg = Debug|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Debug|x86.ActiveCfg = Debug|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Release|Any CPU.ActiveCfg = Release|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Release|Any CPU.Build.0 = Release|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Release|x64.ActiveCfg = Release|Any CPU - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482}.Release|x86.ActiveCfg = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x64.ActiveCfg = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x64.Build.0 = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x86.ActiveCfg = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x86.Build.0 = Debug|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|Any CPU.Build.0 = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x64.ActiveCfg = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x64.Build.0 = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x86.ActiveCfg = Release|Any CPU - {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x86.Build.0 = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|x64.ActiveCfg = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|x64.Build.0 = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|x86.ActiveCfg = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Debug|x86.Build.0 = Debug|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|Any CPU.Build.0 = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|x64.ActiveCfg = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|x64.Build.0 = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|x86.ActiveCfg = Release|Any CPU - {4E91BD2A-616F-45EE-9647-2F1608D17FB9}.Release|x86.Build.0 = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|x64.ActiveCfg = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|x64.Build.0 = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|x86.ActiveCfg = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Debug|x86.Build.0 = Debug|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|Any CPU.Build.0 = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|x64.ActiveCfg = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|x64.Build.0 = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|x86.ActiveCfg = Release|Any CPU - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28}.Release|x86.Build.0 = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|x64.ActiveCfg = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|x64.Build.0 = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|x86.ActiveCfg = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Debug|x86.Build.0 = Debug|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|Any CPU.Build.0 = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|x64.ActiveCfg = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|x64.Build.0 = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|x86.ActiveCfg = Release|Any CPU - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5FA7ABB3-5285-4101-B25E-0C8178ECDA50} = {CA4538F5-9DA8-4139-B891-A13279889F79} - {526BE3AE-3DD3-4AB6-BC81-AC34ED735482} = {CA4538F5-9DA8-4139-B891-A13279889F79} - {B5C26BE6-655E-4D7F-B756-F286750EF172} = {15E42EAC-5CBB-49EC-91FB-53743882CF2B} - {4E91BD2A-616F-45EE-9647-2F1608D17FB9} = {CA4538F5-9DA8-4139-B891-A13279889F79} - {D8804E7A-BD7A-4E4B-ACA7-822A37A81B28} = {CA4538F5-9DA8-4139-B891-A13279889F79} - {F2F7A64C-870C-40C9-B5FC-F8952F1572B3} = {CA4538F5-9DA8-4139-B891-A13279889F79} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {39E3AF62-B1FD-4156-92AA-F4FA99B5AD89} - EndGlobalSection -EndGlobal diff --git a/src/AuthSamples/Directory.Build.props b/src/AuthSamples/Directory.Build.props deleted file mode 100644 index 26d1c16e45..0000000000 --- a/src/AuthSamples/Directory.Build.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - Microsoft ASP.NET Core - https://github.com/aspnet/AspNetCore - git - $(MSBuildThisFileDirectory) - - - - - - - diff --git a/src/AuthSamples/Directory.Build.targets b/src/AuthSamples/Directory.Build.targets deleted file mode 100644 index 9e972f282e..0000000000 --- a/src/AuthSamples/Directory.Build.targets +++ /dev/null @@ -1,7 +0,0 @@ - - - $(MicrosoftNETCoreApp20PackageVersion) - $(MicrosoftNETCoreApp21PackageVersion) - $(NETStandardLibrary20PackageVersion) - - \ No newline at end of file diff --git a/src/AuthSamples/NuGetPackageVerifier.json b/src/AuthSamples/NuGetPackageVerifier.json deleted file mode 100644 index 22ef3c09c0..0000000000 --- a/src/AuthSamples/NuGetPackageVerifier.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Default": { - "rules": [ - "DefaultCompositeRule" - ] - } -} diff --git a/src/AuthSamples/README.md b/src/AuthSamples/README.md deleted file mode 100644 index f147a95edd..0000000000 --- a/src/AuthSamples/README.md +++ /dev/null @@ -1,15 +0,0 @@ -AuthSamples -================= - -This repo contains ASP.NET Core samples for Authentication, Authorization, Identity, etc.. - -This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo. - -## Building from source - -To run a complete build on command line only, execute `build.cmd` or `build.sh` without arguments. - -Before opening this project in Visual Studio or VS Code, execute `build.cmd /t:Restore` (Windows) or `./build.sh /t:Restore` (Linux/macOS). -This will execute only the part of the build script that downloads and initializes a few required build tools and packages. - -See [developer documentation](https://github.com/aspnet/Home/wiki) for more details. \ No newline at end of file diff --git a/src/AuthSamples/build/dependencies.props b/src/AuthSamples/build/dependencies.props deleted file mode 100644 index c8622f6dd3..0000000000 --- a/src/AuthSamples/build/dependencies.props +++ /dev/null @@ -1,81 +0,0 @@ - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - 2.1.3-rtm-15802 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.0-preview1-27942 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.2 - 2.1.2 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.2 - 2.1.1 - 2.1.1 - 0.5.1 - 2.1.2 - 2.1.2 - 2.1.1 - 2.1.1 - 2.1.0 - 2.2.1 - 2.3.2 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 3.14.2 - 5.2.0 - 2.0.0 - 2.1.2 - 2.1.1 - 15.6.1 - 3.0.1 - 2.1.1 - 4.7.49 - 2.0.3 - 4.5.0 - 0.8.0 - 2.3.1 - 2.4.0-beta.1.build3945 - - - - - - - - diff --git a/src/AuthSamples/build/repo.props b/src/AuthSamples/build/repo.props deleted file mode 100644 index 1dc8b8100d..0000000000 --- a/src/AuthSamples/build/repo.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/AuthSamples/build/sources.props b/src/AuthSamples/build/sources.props deleted file mode 100644 index 9215df9751..0000000000 --- a/src/AuthSamples/build/sources.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - $(DotNetRestoreSources) - - $(RestoreSources); - https://dotnet.myget.org/F/dotnet-core/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json; - - - $(RestoreSources); - https://api.nuget.org/v3/index.json; - - - diff --git a/src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformation.csproj b/src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformation.csproj deleted file mode 100644 index e328fafb00..0000000000 --- a/src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformation.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - false - netcoreapp2.1 - - - - - - - - - - diff --git a/src/AuthSamples/samples/Cookies/Cookies.csproj b/src/AuthSamples/samples/Cookies/Cookies.csproj deleted file mode 100644 index e328fafb00..0000000000 --- a/src/AuthSamples/samples/Cookies/Cookies.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - false - netcoreapp2.1 - - - - - - - - - - diff --git a/src/AuthSamples/samples/DynamicSchemes/DynamicSchemes.csproj b/src/AuthSamples/samples/DynamicSchemes/DynamicSchemes.csproj deleted file mode 100644 index 81a81d90d4..0000000000 --- a/src/AuthSamples/samples/DynamicSchemes/DynamicSchemes.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - netcoreapp2.1;net461 - - - - - - - - - - - - - - - - - - - - - diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj b/src/AuthSamples/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj deleted file mode 100644 index 5444ac0470..0000000000 --- a/src/AuthSamples/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - netcoreapp2.1;net461 - aspnet-Identity.ExternalClaims-E95BE154-CB1B-4633-A2E0-B2DF12FE8BD3 - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/AuthSamples/samples/PathSchemeSelection/PathSchemeSelection.csproj b/src/AuthSamples/samples/PathSchemeSelection/PathSchemeSelection.csproj deleted file mode 100644 index 8ca86081de..0000000000 --- a/src/AuthSamples/samples/PathSchemeSelection/PathSchemeSelection.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - false - netcoreapp2.1 - - - - - - - - - - - diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj b/src/AuthSamples/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj deleted file mode 100644 index ebafee8594..0000000000 --- a/src/AuthSamples/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - netcoreapp2.1 - - - - - - AnyCPU - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Security/AuthSamples.sln b/src/Security/AuthSamples.sln new file mode 100644 index 0000000000..3c5d84be5e --- /dev/null +++ b/src/Security/AuthSamples.sln @@ -0,0 +1,411 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2003 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{CA4538F5-9DA8-4139-B891-A13279889F79}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{DA474CFD-7419-4747-A583-CCDC1FF71EB5}" + ProjectSection(SolutionItems) = preProject + build\common.props = build\common.props + build\dependencies.props = build\dependencies.props + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{15E42EAC-5CBB-49EC-91FB-53743882CF2B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthSamples.FunctionalTests", "test\AuthSamples.FunctionalTests\AuthSamples.FunctionalTests.csproj", "{B5C26BE6-655E-4D7F-B756-F286750EF172}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cookies", "samples\Cookies\Cookies.csproj", "{7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClaimsTransformation", "samples\ClaimsTransformation\ClaimsTransformation.csproj", "{E973973F-5825-4F91-B017-93EC384B6CC8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicSchemes", "samples\DynamicSchemes\DynamicSchemes.csproj", "{E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.ExternalClaims", "samples\Identity.ExternalClaims\Identity.ExternalClaims.csproj", "{D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PathSchemeSelection", "samples\PathSchemeSelection\PathSchemeSelection.csproj", "{D467E511-71E0-4820-AFE4-2A88AA6B8849}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_dependencies", "_dependencies", "{142C8260-90B5-4D72-9564-17BFDD72F496}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore", "..\DefaultBuilder\src\Microsoft.AspNetCore.csproj", "{1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Hosting", "..\Hosting\Hosting\src\Microsoft.AspNetCore.Hosting.csproj", "{81B41AD2-5D3D-4023-86EC-CAFE01A59174}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IntegrationTesting", "..\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj", "{1219DC35-FB59-40D3-BDEE-F67616AB7359}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.TestHost", "..\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj", "{3A896D09-1E29-454A-983B-7E2060370727}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Testing", "..\Mvc\src\Microsoft.AspNetCore.Mvc.Testing\Microsoft.AspNetCore.Mvc.Testing.csproj", "{941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authentication.Cookies", "Authentication\Cookies\src\Microsoft.AspNetCore.Authentication.Cookies.csproj", "{2944F22B-746E-467B-A6FC-C003E32C3143}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc", "..\Mvc\src\Microsoft.AspNetCore.Mvc\Microsoft.AspNetCore.Mvc.csproj", "{A3053CD2-9CE9-4C30-9E25-9CAEF950B137}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.StaticFiles", "..\Middleware\StaticFiles\src\Microsoft.AspNetCore.StaticFiles.csproj", "{273EA5E9-9DFC-40B2-B4C2-80496ABE2675}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authentication.Google", "Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj", "{CA598480-75BD-4999-A77A-24706262C457}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authorization", "Authorization\Core\src\Microsoft.AspNetCore.Authorization.csproj", "{659D2136-A231-405B-8B40-B3B116E5A9FB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Extensions", "..\DataProtection\Extensions\src\Microsoft.AspNetCore.DataProtection.Extensions.csproj", "{4E34175A-05EA-4E97-B49C-A4BD350A14C4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Diagnostics", "..\Middleware\Diagnostics\src\Microsoft.AspNetCore.Diagnostics.csproj", "{E188C5B4-CF3C-431A-8B84-E3A0132D5A97}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore", "..\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj", "{A3844C69-785D-445E-95CE-E7FC17D5B65A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{7F435FB2-DDE9-44E2-80C4-55A94E174B47}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel", "..\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj", "{8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Identity", "..\Identity\Core\src\Microsoft.AspNetCore.Identity.csproj", "{C5FAD129-AF09-433F-83A5-5601A9304CD7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Identity.EntityFrameworkCore", "..\Identity\EntityFrameworkCore\src\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj", "{B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authentication.Facebook", "Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj", "{9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authentication.Twitter", "Authentication\Twitter\src\Microsoft.AspNetCore.Authentication.Twitter.csproj", "{82C0816D-7051-4DDB-9B9E-6777973AD7AE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x64.Build.0 = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x86.ActiveCfg = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Debug|x86.Build.0 = Debug|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|Any CPU.Build.0 = Release|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x64.ActiveCfg = Release|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x64.Build.0 = Release|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x86.ActiveCfg = Release|Any CPU + {B5C26BE6-655E-4D7F-B756-F286750EF172}.Release|x86.Build.0 = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|x64.ActiveCfg = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|x64.Build.0 = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|x86.ActiveCfg = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Debug|x86.Build.0 = Debug|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|Any CPU.Build.0 = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|x64.ActiveCfg = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|x64.Build.0 = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|x86.ActiveCfg = Release|Any CPU + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748}.Release|x86.Build.0 = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|x64.ActiveCfg = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|x64.Build.0 = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Debug|x86.Build.0 = Debug|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|Any CPU.Build.0 = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|x64.ActiveCfg = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|x64.Build.0 = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|x86.ActiveCfg = Release|Any CPU + {E973973F-5825-4F91-B017-93EC384B6CC8}.Release|x86.Build.0 = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|x64.ActiveCfg = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|x64.Build.0 = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|x86.ActiveCfg = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Debug|x86.Build.0 = Debug|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|Any CPU.Build.0 = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|x64.ActiveCfg = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|x64.Build.0 = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|x86.ActiveCfg = Release|Any CPU + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA}.Release|x86.Build.0 = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|x64.ActiveCfg = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|x64.Build.0 = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|x86.ActiveCfg = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Debug|x86.Build.0 = Debug|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|Any CPU.Build.0 = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|x64.ActiveCfg = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|x64.Build.0 = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|x86.ActiveCfg = Release|Any CPU + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272}.Release|x86.Build.0 = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|x64.ActiveCfg = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|x64.Build.0 = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|x86.ActiveCfg = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Debug|x86.Build.0 = Debug|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|Any CPU.Build.0 = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|x64.ActiveCfg = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|x64.Build.0 = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|x86.ActiveCfg = Release|Any CPU + {D467E511-71E0-4820-AFE4-2A88AA6B8849}.Release|x86.Build.0 = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|x64.ActiveCfg = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|x64.Build.0 = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Debug|x86.Build.0 = Debug|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|Any CPU.Build.0 = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|x64.ActiveCfg = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|x64.Build.0 = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|x86.ActiveCfg = Release|Any CPU + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F}.Release|x86.Build.0 = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|x64.ActiveCfg = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|x64.Build.0 = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|x86.ActiveCfg = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Debug|x86.Build.0 = Debug|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|Any CPU.Build.0 = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|x64.ActiveCfg = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|x64.Build.0 = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|x86.ActiveCfg = Release|Any CPU + {81B41AD2-5D3D-4023-86EC-CAFE01A59174}.Release|x86.Build.0 = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|x64.ActiveCfg = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|x64.Build.0 = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|x86.ActiveCfg = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Debug|x86.Build.0 = Debug|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|Any CPU.Build.0 = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|x64.ActiveCfg = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|x64.Build.0 = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|x86.ActiveCfg = Release|Any CPU + {1219DC35-FB59-40D3-BDEE-F67616AB7359}.Release|x86.Build.0 = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|x64.ActiveCfg = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|x64.Build.0 = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|x86.ActiveCfg = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Debug|x86.Build.0 = Debug|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|Any CPU.Build.0 = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|x64.ActiveCfg = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|x64.Build.0 = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|x86.ActiveCfg = Release|Any CPU + {3A896D09-1E29-454A-983B-7E2060370727}.Release|x86.Build.0 = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|x64.Build.0 = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Debug|x86.Build.0 = Debug|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|Any CPU.Build.0 = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|x64.ActiveCfg = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|x64.Build.0 = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|x86.ActiveCfg = Release|Any CPU + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB}.Release|x86.Build.0 = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|x64.ActiveCfg = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|x64.Build.0 = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|x86.ActiveCfg = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Debug|x86.Build.0 = Debug|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|Any CPU.Build.0 = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|x64.ActiveCfg = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|x64.Build.0 = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|x86.ActiveCfg = Release|Any CPU + {2944F22B-746E-467B-A6FC-C003E32C3143}.Release|x86.Build.0 = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|x64.ActiveCfg = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|x64.Build.0 = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|x86.ActiveCfg = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Debug|x86.Build.0 = Debug|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|Any CPU.Build.0 = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|x64.ActiveCfg = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|x64.Build.0 = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|x86.ActiveCfg = Release|Any CPU + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137}.Release|x86.Build.0 = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|Any CPU.Build.0 = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|x64.ActiveCfg = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|x64.Build.0 = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|x86.ActiveCfg = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Debug|x86.Build.0 = Debug|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|Any CPU.ActiveCfg = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|Any CPU.Build.0 = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|x64.ActiveCfg = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|x64.Build.0 = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|x86.ActiveCfg = Release|Any CPU + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675}.Release|x86.Build.0 = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|x64.ActiveCfg = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|x64.Build.0 = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|x86.ActiveCfg = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Debug|x86.Build.0 = Debug|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|Any CPU.Build.0 = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|x64.ActiveCfg = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|x64.Build.0 = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|x86.ActiveCfg = Release|Any CPU + {CA598480-75BD-4999-A77A-24706262C457}.Release|x86.Build.0 = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|x64.ActiveCfg = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|x64.Build.0 = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|x86.ActiveCfg = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Debug|x86.Build.0 = Debug|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|Any CPU.Build.0 = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|x64.ActiveCfg = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|x64.Build.0 = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|x86.ActiveCfg = Release|Any CPU + {659D2136-A231-405B-8B40-B3B116E5A9FB}.Release|x86.Build.0 = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|x64.ActiveCfg = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|x64.Build.0 = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|x86.ActiveCfg = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Debug|x86.Build.0 = Debug|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|Any CPU.Build.0 = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|x64.ActiveCfg = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|x64.Build.0 = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|x86.ActiveCfg = Release|Any CPU + {4E34175A-05EA-4E97-B49C-A4BD350A14C4}.Release|x86.Build.0 = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|x64.ActiveCfg = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|x64.Build.0 = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|x86.ActiveCfg = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Debug|x86.Build.0 = Debug|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|Any CPU.Build.0 = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|x64.ActiveCfg = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|x64.Build.0 = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|x86.ActiveCfg = Release|Any CPU + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97}.Release|x86.Build.0 = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|x64.ActiveCfg = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|x64.Build.0 = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|x86.ActiveCfg = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Debug|x86.Build.0 = Debug|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|Any CPU.Build.0 = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|x64.ActiveCfg = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|x64.Build.0 = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|x86.ActiveCfg = Release|Any CPU + {A3844C69-785D-445E-95CE-E7FC17D5B65A}.Release|x86.Build.0 = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|x64.ActiveCfg = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|x64.Build.0 = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Debug|x86.Build.0 = Debug|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|Any CPU.Build.0 = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|x64.ActiveCfg = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|x64.Build.0 = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|x86.ActiveCfg = Release|Any CPU + {7F435FB2-DDE9-44E2-80C4-55A94E174B47}.Release|x86.Build.0 = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|x64.Build.0 = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Debug|x86.Build.0 = Debug|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|Any CPU.Build.0 = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|x64.ActiveCfg = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|x64.Build.0 = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|x86.ActiveCfg = Release|Any CPU + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD}.Release|x86.Build.0 = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|x64.ActiveCfg = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|x64.Build.0 = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|x86.ActiveCfg = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Debug|x86.Build.0 = Debug|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|Any CPU.Build.0 = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|x64.ActiveCfg = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|x64.Build.0 = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|x86.ActiveCfg = Release|Any CPU + {C5FAD129-AF09-433F-83A5-5601A9304CD7}.Release|x86.Build.0 = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|x64.ActiveCfg = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|x64.Build.0 = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|x86.ActiveCfg = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Debug|x86.Build.0 = Debug|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|Any CPU.Build.0 = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|x64.ActiveCfg = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|x64.Build.0 = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|x86.ActiveCfg = Release|Any CPU + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC}.Release|x86.Build.0 = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|x64.Build.0 = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Debug|x86.Build.0 = Debug|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|Any CPU.Build.0 = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|x64.ActiveCfg = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|x64.Build.0 = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|x86.ActiveCfg = Release|Any CPU + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82}.Release|x86.Build.0 = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|x64.ActiveCfg = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|x64.Build.0 = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|x86.ActiveCfg = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Debug|x86.Build.0 = Debug|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|Any CPU.Build.0 = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|x64.ActiveCfg = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|x64.Build.0 = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|x86.ActiveCfg = Release|Any CPU + {82C0816D-7051-4DDB-9B9E-6777973AD7AE}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {B5C26BE6-655E-4D7F-B756-F286750EF172} = {15E42EAC-5CBB-49EC-91FB-53743882CF2B} + {7EC9C298-5C22-4CE1-B52C-E1D6AE5B5748} = {CA4538F5-9DA8-4139-B891-A13279889F79} + {E973973F-5825-4F91-B017-93EC384B6CC8} = {CA4538F5-9DA8-4139-B891-A13279889F79} + {E960EAAA-D1F1-4A3B-A02F-3737DE6236BA} = {CA4538F5-9DA8-4139-B891-A13279889F79} + {D28BE2B0-DAFD-4B4E-BBE3-5A35923F9272} = {CA4538F5-9DA8-4139-B891-A13279889F79} + {D467E511-71E0-4820-AFE4-2A88AA6B8849} = {CA4538F5-9DA8-4139-B891-A13279889F79} + {1F3578EE-9255-4DBA-BF4B-B19D73BEB77F} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {81B41AD2-5D3D-4023-86EC-CAFE01A59174} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {1219DC35-FB59-40D3-BDEE-F67616AB7359} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {3A896D09-1E29-454A-983B-7E2060370727} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {941DD8A4-1611-4022-AD67-0CBDC6B5B8CB} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {2944F22B-746E-467B-A6FC-C003E32C3143} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {A3053CD2-9CE9-4C30-9E25-9CAEF950B137} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {273EA5E9-9DFC-40B2-B4C2-80496ABE2675} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {CA598480-75BD-4999-A77A-24706262C457} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {659D2136-A231-405B-8B40-B3B116E5A9FB} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {4E34175A-05EA-4E97-B49C-A4BD350A14C4} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {E188C5B4-CF3C-431A-8B84-E3A0132D5A97} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {A3844C69-785D-445E-95CE-E7FC17D5B65A} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {7F435FB2-DDE9-44E2-80C4-55A94E174B47} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {8BEA4C2F-3608-4979-BE4A-C59D7C5F64CD} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {C5FAD129-AF09-433F-83A5-5601A9304CD7} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {B9B5D2E8-1B10-4239-B535-1D66F4F5DACC} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {9D5BD889-B84C-4D1A-B2AA-3FC1BF51BF82} = {142C8260-90B5-4D72-9564-17BFDD72F496} + {82C0816D-7051-4DDB-9B9E-6777973AD7AE} = {142C8260-90B5-4D72-9564-17BFDD72F496} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {39E3AF62-B1FD-4156-92AA-F4FA99B5AD89} + EndGlobalSection +EndGlobal diff --git a/src/AuthSamples/samples/ClaimsTransformation/.bowerrc b/src/Security/samples/ClaimsTransformation/.bowerrc similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/.bowerrc rename to src/Security/samples/ClaimsTransformation/.bowerrc diff --git a/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj b/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj new file mode 100644 index 0000000000..feee8fa210 --- /dev/null +++ b/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj @@ -0,0 +1,15 @@ + + + + netcoreapp2.1 + true + + + + + + + + + + diff --git a/src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformer.cs b/src/Security/samples/ClaimsTransformation/ClaimsTransformer.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/ClaimsTransformer.cs rename to src/Security/samples/ClaimsTransformation/ClaimsTransformer.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/Controllers/AccountController.cs b/src/Security/samples/ClaimsTransformation/Controllers/AccountController.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Controllers/AccountController.cs rename to src/Security/samples/ClaimsTransformation/Controllers/AccountController.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/Controllers/HomeController.cs b/src/Security/samples/ClaimsTransformation/Controllers/HomeController.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Controllers/HomeController.cs rename to src/Security/samples/ClaimsTransformation/Controllers/HomeController.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/Models/ErrorViewModel.cs b/src/Security/samples/ClaimsTransformation/Models/ErrorViewModel.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Models/ErrorViewModel.cs rename to src/Security/samples/ClaimsTransformation/Models/ErrorViewModel.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/Program.cs b/src/Security/samples/ClaimsTransformation/Program.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Program.cs rename to src/Security/samples/ClaimsTransformation/Program.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/README.md b/src/Security/samples/ClaimsTransformation/README.md similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/README.md rename to src/Security/samples/ClaimsTransformation/README.md diff --git a/src/AuthSamples/samples/ClaimsTransformation/Startup.cs b/src/Security/samples/ClaimsTransformation/Startup.cs similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Startup.cs rename to src/Security/samples/ClaimsTransformation/Startup.cs diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Account/AccessDenied.cshtml b/src/Security/samples/ClaimsTransformation/Views/Account/AccessDenied.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Account/AccessDenied.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Account/AccessDenied.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Account/Login.cshtml b/src/Security/samples/ClaimsTransformation/Views/Account/Login.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Account/Login.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Account/Login.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Home/Index.cshtml b/src/Security/samples/ClaimsTransformation/Views/Home/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Home/Index.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Home/Index.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Home/MyClaims.cshtml b/src/Security/samples/ClaimsTransformation/Views/Home/MyClaims.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Home/MyClaims.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Home/MyClaims.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Shared/Error.cshtml b/src/Security/samples/ClaimsTransformation/Views/Shared/Error.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Shared/Error.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Shared/Error.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Shared/_Layout.cshtml b/src/Security/samples/ClaimsTransformation/Views/Shared/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Shared/_Layout.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Shared/_Layout.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Security/samples/ClaimsTransformation/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/Shared/_ValidationScriptsPartial.cshtml rename to src/Security/samples/ClaimsTransformation/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/_ViewImports.cshtml b/src/Security/samples/ClaimsTransformation/Views/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/_ViewImports.cshtml rename to src/Security/samples/ClaimsTransformation/Views/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/Views/_ViewStart.cshtml b/src/Security/samples/ClaimsTransformation/Views/_ViewStart.cshtml similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/Views/_ViewStart.cshtml rename to src/Security/samples/ClaimsTransformation/Views/_ViewStart.cshtml diff --git a/src/AuthSamples/samples/ClaimsTransformation/appsettings.Development.json b/src/Security/samples/ClaimsTransformation/appsettings.Development.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/appsettings.Development.json rename to src/Security/samples/ClaimsTransformation/appsettings.Development.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/appsettings.json b/src/Security/samples/ClaimsTransformation/appsettings.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/appsettings.json rename to src/Security/samples/ClaimsTransformation/appsettings.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/bower.json b/src/Security/samples/ClaimsTransformation/bower.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/bower.json rename to src/Security/samples/ClaimsTransformation/bower.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/bundleconfig.json b/src/Security/samples/ClaimsTransformation/bundleconfig.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/bundleconfig.json rename to src/Security/samples/ClaimsTransformation/bundleconfig.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/css/site.css b/src/Security/samples/ClaimsTransformation/wwwroot/css/site.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/css/site.css rename to src/Security/samples/ClaimsTransformation/wwwroot/css/site.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/css/site.min.css b/src/Security/samples/ClaimsTransformation/wwwroot/css/site.min.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/css/site.min.css rename to src/Security/samples/ClaimsTransformation/wwwroot/css/site.min.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/favicon.ico b/src/Security/samples/ClaimsTransformation/wwwroot/favicon.ico similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/favicon.ico rename to src/Security/samples/ClaimsTransformation/wwwroot/favicon.ico diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner1.svg b/src/Security/samples/ClaimsTransformation/wwwroot/images/banner1.svg similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner1.svg rename to src/Security/samples/ClaimsTransformation/wwwroot/images/banner1.svg diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner2.svg b/src/Security/samples/ClaimsTransformation/wwwroot/images/banner2.svg similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner2.svg rename to src/Security/samples/ClaimsTransformation/wwwroot/images/banner2.svg diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner3.svg b/src/Security/samples/ClaimsTransformation/wwwroot/images/banner3.svg similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner3.svg rename to src/Security/samples/ClaimsTransformation/wwwroot/images/banner3.svg diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner4.svg b/src/Security/samples/ClaimsTransformation/wwwroot/images/banner4.svg similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/images/banner4.svg rename to src/Security/samples/ClaimsTransformation/wwwroot/images/banner4.svg diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/js/site.js b/src/Security/samples/ClaimsTransformation/wwwroot/js/site.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/js/site.js rename to src/Security/samples/ClaimsTransformation/wwwroot/js/site.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/js/site.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/js/site.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/js/site.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/js/site.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/.bower.json b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/.bower.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/.bower.json rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/.bower.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/LICENSE b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/LICENSE rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/LICENSE diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/npm.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/npm.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/npm.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/bootstrap/dist/js/npm.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/.bower.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/.bower.json rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/.bower.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/.bower.json b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/.bower.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/.bower.json rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/.bower.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/LICENSE.md b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/.bower.json b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/.bower.json similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/.bower.json rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/.bower.json diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/LICENSE.txt b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/LICENSE.txt rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.js b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.js rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.map b/src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/AuthSamples/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Security/samples/ClaimsTransformation/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/AuthSamples/samples/Cookies/.bowerrc b/src/Security/samples/Cookies/.bowerrc similarity index 100% rename from src/AuthSamples/samples/Cookies/.bowerrc rename to src/Security/samples/Cookies/.bowerrc diff --git a/src/AuthSamples/samples/Cookies/ConfigureMyCookie.cs b/src/Security/samples/Cookies/ConfigureMyCookie.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/ConfigureMyCookie.cs rename to src/Security/samples/Cookies/ConfigureMyCookie.cs diff --git a/src/AuthSamples/samples/Cookies/Controllers/AccountController.cs b/src/Security/samples/Cookies/Controllers/AccountController.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/Controllers/AccountController.cs rename to src/Security/samples/Cookies/Controllers/AccountController.cs diff --git a/src/AuthSamples/samples/Cookies/Controllers/HomeController.cs b/src/Security/samples/Cookies/Controllers/HomeController.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/Controllers/HomeController.cs rename to src/Security/samples/Cookies/Controllers/HomeController.cs diff --git a/src/Security/samples/Cookies/Cookies.csproj b/src/Security/samples/Cookies/Cookies.csproj new file mode 100644 index 0000000000..feee8fa210 --- /dev/null +++ b/src/Security/samples/Cookies/Cookies.csproj @@ -0,0 +1,15 @@ + + + + netcoreapp2.1 + true + + + + + + + + + + diff --git a/src/AuthSamples/samples/Cookies/Models/ErrorViewModel.cs b/src/Security/samples/Cookies/Models/ErrorViewModel.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/Models/ErrorViewModel.cs rename to src/Security/samples/Cookies/Models/ErrorViewModel.cs diff --git a/src/AuthSamples/samples/Cookies/Program.cs b/src/Security/samples/Cookies/Program.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/Program.cs rename to src/Security/samples/Cookies/Program.cs diff --git a/src/AuthSamples/samples/Cookies/README.md b/src/Security/samples/Cookies/README.md similarity index 100% rename from src/AuthSamples/samples/Cookies/README.md rename to src/Security/samples/Cookies/README.md diff --git a/src/AuthSamples/samples/Cookies/Startup.cs b/src/Security/samples/Cookies/Startup.cs similarity index 100% rename from src/AuthSamples/samples/Cookies/Startup.cs rename to src/Security/samples/Cookies/Startup.cs diff --git a/src/AuthSamples/samples/Cookies/Views/Account/AccessDenied.cshtml b/src/Security/samples/Cookies/Views/Account/AccessDenied.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Account/AccessDenied.cshtml rename to src/Security/samples/Cookies/Views/Account/AccessDenied.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Account/Login.cshtml b/src/Security/samples/Cookies/Views/Account/Login.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Account/Login.cshtml rename to src/Security/samples/Cookies/Views/Account/Login.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Home/Index.cshtml b/src/Security/samples/Cookies/Views/Home/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Home/Index.cshtml rename to src/Security/samples/Cookies/Views/Home/Index.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Home/MyClaims.cshtml b/src/Security/samples/Cookies/Views/Home/MyClaims.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Home/MyClaims.cshtml rename to src/Security/samples/Cookies/Views/Home/MyClaims.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Shared/Error.cshtml b/src/Security/samples/Cookies/Views/Shared/Error.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Shared/Error.cshtml rename to src/Security/samples/Cookies/Views/Shared/Error.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Shared/_Layout.cshtml b/src/Security/samples/Cookies/Views/Shared/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Shared/_Layout.cshtml rename to src/Security/samples/Cookies/Views/Shared/_Layout.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Security/samples/Cookies/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/Shared/_ValidationScriptsPartial.cshtml rename to src/Security/samples/Cookies/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/_ViewImports.cshtml b/src/Security/samples/Cookies/Views/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/_ViewImports.cshtml rename to src/Security/samples/Cookies/Views/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/Cookies/Views/_ViewStart.cshtml b/src/Security/samples/Cookies/Views/_ViewStart.cshtml similarity index 100% rename from src/AuthSamples/samples/Cookies/Views/_ViewStart.cshtml rename to src/Security/samples/Cookies/Views/_ViewStart.cshtml diff --git a/src/AuthSamples/samples/Cookies/appsettings.Development.json b/src/Security/samples/Cookies/appsettings.Development.json similarity index 100% rename from src/AuthSamples/samples/Cookies/appsettings.Development.json rename to src/Security/samples/Cookies/appsettings.Development.json diff --git a/src/AuthSamples/samples/Cookies/appsettings.json b/src/Security/samples/Cookies/appsettings.json similarity index 100% rename from src/AuthSamples/samples/Cookies/appsettings.json rename to src/Security/samples/Cookies/appsettings.json diff --git a/src/AuthSamples/samples/Cookies/bower.json b/src/Security/samples/Cookies/bower.json similarity index 100% rename from src/AuthSamples/samples/Cookies/bower.json rename to src/Security/samples/Cookies/bower.json diff --git a/src/AuthSamples/samples/Cookies/bundleconfig.json b/src/Security/samples/Cookies/bundleconfig.json similarity index 100% rename from src/AuthSamples/samples/Cookies/bundleconfig.json rename to src/Security/samples/Cookies/bundleconfig.json diff --git a/src/AuthSamples/samples/Cookies/wwwroot/css/site.css b/src/Security/samples/Cookies/wwwroot/css/site.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/css/site.css rename to src/Security/samples/Cookies/wwwroot/css/site.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/css/site.min.css b/src/Security/samples/Cookies/wwwroot/css/site.min.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/css/site.min.css rename to src/Security/samples/Cookies/wwwroot/css/site.min.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/favicon.ico b/src/Security/samples/Cookies/wwwroot/favicon.ico similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/favicon.ico rename to src/Security/samples/Cookies/wwwroot/favicon.ico diff --git a/src/AuthSamples/samples/Cookies/wwwroot/images/banner1.svg b/src/Security/samples/Cookies/wwwroot/images/banner1.svg similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/images/banner1.svg rename to src/Security/samples/Cookies/wwwroot/images/banner1.svg diff --git a/src/AuthSamples/samples/Cookies/wwwroot/images/banner2.svg b/src/Security/samples/Cookies/wwwroot/images/banner2.svg similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/images/banner2.svg rename to src/Security/samples/Cookies/wwwroot/images/banner2.svg diff --git a/src/AuthSamples/samples/Cookies/wwwroot/images/banner3.svg b/src/Security/samples/Cookies/wwwroot/images/banner3.svg similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/images/banner3.svg rename to src/Security/samples/Cookies/wwwroot/images/banner3.svg diff --git a/src/AuthSamples/samples/Cookies/wwwroot/images/banner4.svg b/src/Security/samples/Cookies/wwwroot/images/banner4.svg similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/images/banner4.svg rename to src/Security/samples/Cookies/wwwroot/images/banner4.svg diff --git a/src/AuthSamples/samples/Cookies/wwwroot/js/site.js b/src/Security/samples/Cookies/wwwroot/js/site.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/js/site.js rename to src/Security/samples/Cookies/wwwroot/js/site.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/js/site.min.js b/src/Security/samples/Cookies/wwwroot/js/site.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/js/site.min.js rename to src/Security/samples/Cookies/wwwroot/js/site.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/.bower.json b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/.bower.json similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/.bower.json rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/.bower.json diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/LICENSE b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/LICENSE rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/LICENSE diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/npm.js b/src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/npm.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/bootstrap/dist/js/npm.js rename to src/Security/samples/Cookies/wwwroot/lib/bootstrap/dist/js/npm.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/.bower.json similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/.bower.json rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/.bower.json diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/.bower.json b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/.bower.json similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/.bower.json rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/.bower.json diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/LICENSE.md b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/.bower.json b/src/Security/samples/Cookies/wwwroot/lib/jquery/.bower.json similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/.bower.json rename to src/Security/samples/Cookies/wwwroot/lib/jquery/.bower.json diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/LICENSE.txt b/src/Security/samples/Cookies/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/LICENSE.txt rename to src/Security/samples/Cookies/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.js b/src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.js b/src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.js rename to src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.map b/src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/AuthSamples/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Security/samples/Cookies/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/AuthSamples/samples/DynamicSchemes/Controllers/AuthController.cs b/src/Security/samples/DynamicSchemes/Controllers/AuthController.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Controllers/AuthController.cs rename to src/Security/samples/DynamicSchemes/Controllers/AuthController.cs diff --git a/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj b/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj new file mode 100644 index 0000000000..1f8300e50f --- /dev/null +++ b/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj @@ -0,0 +1,25 @@ + + + netcoreapp2.1;net461 + true + + + + + + + + + + + + + + + + + + + + + diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/About.cshtml b/src/Security/samples/DynamicSchemes/Pages/About.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/About.cshtml rename to src/Security/samples/DynamicSchemes/Pages/About.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/About.cshtml.cs b/src/Security/samples/DynamicSchemes/Pages/About.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/About.cshtml.cs rename to src/Security/samples/DynamicSchemes/Pages/About.cshtml.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Contact.cshtml b/src/Security/samples/DynamicSchemes/Pages/Contact.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Contact.cshtml rename to src/Security/samples/DynamicSchemes/Pages/Contact.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Contact.cshtml.cs b/src/Security/samples/DynamicSchemes/Pages/Contact.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Contact.cshtml.cs rename to src/Security/samples/DynamicSchemes/Pages/Contact.cshtml.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Error.cshtml b/src/Security/samples/DynamicSchemes/Pages/Error.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Error.cshtml rename to src/Security/samples/DynamicSchemes/Pages/Error.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Error.cshtml.cs b/src/Security/samples/DynamicSchemes/Pages/Error.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Error.cshtml.cs rename to src/Security/samples/DynamicSchemes/Pages/Error.cshtml.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Index.cshtml b/src/Security/samples/DynamicSchemes/Pages/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Index.cshtml rename to src/Security/samples/DynamicSchemes/Pages/Index.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/Index.cshtml.cs b/src/Security/samples/DynamicSchemes/Pages/Index.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/Index.cshtml.cs rename to src/Security/samples/DynamicSchemes/Pages/Index.cshtml.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/_Layout.cshtml b/src/Security/samples/DynamicSchemes/Pages/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/_Layout.cshtml rename to src/Security/samples/DynamicSchemes/Pages/_Layout.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/_ValidationScriptsPartial.cshtml b/src/Security/samples/DynamicSchemes/Pages/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/_ValidationScriptsPartial.cshtml rename to src/Security/samples/DynamicSchemes/Pages/_ValidationScriptsPartial.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/_ViewImports.cshtml b/src/Security/samples/DynamicSchemes/Pages/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/_ViewImports.cshtml rename to src/Security/samples/DynamicSchemes/Pages/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Pages/_ViewStart.cshtml b/src/Security/samples/DynamicSchemes/Pages/_ViewStart.cshtml similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Pages/_ViewStart.cshtml rename to src/Security/samples/DynamicSchemes/Pages/_ViewStart.cshtml diff --git a/src/AuthSamples/samples/DynamicSchemes/Program.cs b/src/Security/samples/DynamicSchemes/Program.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Program.cs rename to src/Security/samples/DynamicSchemes/Program.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/README.md b/src/Security/samples/DynamicSchemes/README.md similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/README.md rename to src/Security/samples/DynamicSchemes/README.md diff --git a/src/AuthSamples/samples/DynamicSchemes/SimpleAuthHandler.cs b/src/Security/samples/DynamicSchemes/SimpleAuthHandler.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/SimpleAuthHandler.cs rename to src/Security/samples/DynamicSchemes/SimpleAuthHandler.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/Startup.cs b/src/Security/samples/DynamicSchemes/Startup.cs similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/Startup.cs rename to src/Security/samples/DynamicSchemes/Startup.cs diff --git a/src/AuthSamples/samples/DynamicSchemes/appsettings.Development.json b/src/Security/samples/DynamicSchemes/appsettings.Development.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/appsettings.Development.json rename to src/Security/samples/DynamicSchemes/appsettings.Development.json diff --git a/src/AuthSamples/samples/DynamicSchemes/appsettings.json b/src/Security/samples/DynamicSchemes/appsettings.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/appsettings.json rename to src/Security/samples/DynamicSchemes/appsettings.json diff --git a/src/AuthSamples/samples/DynamicSchemes/bundleconfig.json b/src/Security/samples/DynamicSchemes/bundleconfig.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/bundleconfig.json rename to src/Security/samples/DynamicSchemes/bundleconfig.json diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/css/site.css b/src/Security/samples/DynamicSchemes/wwwroot/css/site.css similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/css/site.css rename to src/Security/samples/DynamicSchemes/wwwroot/css/site.css diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/css/site.min.css b/src/Security/samples/DynamicSchemes/wwwroot/css/site.min.css similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/css/site.min.css rename to src/Security/samples/DynamicSchemes/wwwroot/css/site.min.css diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/favicon.ico b/src/Security/samples/DynamicSchemes/wwwroot/favicon.ico similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/favicon.ico rename to src/Security/samples/DynamicSchemes/wwwroot/favicon.ico diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner1.svg b/src/Security/samples/DynamicSchemes/wwwroot/images/banner1.svg similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner1.svg rename to src/Security/samples/DynamicSchemes/wwwroot/images/banner1.svg diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner2.svg b/src/Security/samples/DynamicSchemes/wwwroot/images/banner2.svg similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner2.svg rename to src/Security/samples/DynamicSchemes/wwwroot/images/banner2.svg diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner3.svg b/src/Security/samples/DynamicSchemes/wwwroot/images/banner3.svg similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner3.svg rename to src/Security/samples/DynamicSchemes/wwwroot/images/banner3.svg diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner4.svg b/src/Security/samples/DynamicSchemes/wwwroot/images/banner4.svg similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/images/banner4.svg rename to src/Security/samples/DynamicSchemes/wwwroot/images/banner4.svg diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/js/site.js b/src/Security/samples/DynamicSchemes/wwwroot/js/site.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/js/site.js rename to src/Security/samples/DynamicSchemes/wwwroot/js/site.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/js/site.min.js b/src/Security/samples/DynamicSchemes/wwwroot/js/site.min.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/js/site.min.js rename to src/Security/samples/DynamicSchemes/wwwroot/js/site.min.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/.bower.json b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/.bower.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/.bower.json rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/.bower.json diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/LICENSE b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/LICENSE rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/LICENSE diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/npm.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/npm.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/npm.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/bootstrap/dist/js/npm.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/.bower.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/.bower.json rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/.bower.json diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/.bower.json b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/.bower.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/.bower.json rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/.bower.json diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/LICENSE.md b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/.bower.json b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/.bower.json similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/.bower.json rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/.bower.json diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/LICENSE.txt b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/LICENSE.txt rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.js b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.js rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.min.map b/src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/AuthSamples/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Security/samples/DynamicSchemes/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Controllers/AccountController.cs b/src/Security/samples/Identity.ExternalClaims/Controllers/AccountController.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Controllers/AccountController.cs rename to src/Security/samples/Identity.ExternalClaims/Controllers/AccountController.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Data/ApplicationDbContext.cs b/src/Security/samples/Identity.ExternalClaims/Data/ApplicationDbContext.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Data/ApplicationDbContext.cs rename to src/Security/samples/Identity.ExternalClaims/Data/ApplicationDbContext.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Data/ApplicationUser.cs b/src/Security/samples/Identity.ExternalClaims/Data/ApplicationUser.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Data/ApplicationUser.cs rename to src/Security/samples/Identity.ExternalClaims/Data/ApplicationUser.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs b/src/Security/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs rename to src/Security/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.cs b/src/Security/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.cs rename to src/Security/samples/Identity.ExternalClaims/Data/Migrations/00000000000000_CreateIdentitySchema.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/src/Security/samples/Identity.ExternalClaims/Data/Migrations/ApplicationDbContextModelSnapshot.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Data/Migrations/ApplicationDbContextModelSnapshot.cs rename to src/Security/samples/Identity.ExternalClaims/Data/Migrations/ApplicationDbContextModelSnapshot.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Extensions/EmailSenderExtensions.cs b/src/Security/samples/Identity.ExternalClaims/Extensions/EmailSenderExtensions.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Extensions/EmailSenderExtensions.cs rename to src/Security/samples/Identity.ExternalClaims/Extensions/EmailSenderExtensions.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Extensions/UrlHelperExtensions.cs b/src/Security/samples/Identity.ExternalClaims/Extensions/UrlHelperExtensions.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Extensions/UrlHelperExtensions.cs rename to src/Security/samples/Identity.ExternalClaims/Extensions/UrlHelperExtensions.cs diff --git a/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj new file mode 100644 index 0000000000..4261bf290f --- /dev/null +++ b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj @@ -0,0 +1,30 @@ + + + netcoreapp2.1;net461 + aspnet-Identity.ExternalClaims-E95BE154-CB1B-4633-A2E0-B2DF12FE8BD3 + true + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/AccessDenied.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ConfirmEmail.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ExternalLogin.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPassword.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ForgotPasswordConfirmation.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Lockout.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Login.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWith2fa.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/LoginWithRecoveryCode.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ChangePassword.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Disable2fa.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/EnableAuthenticator.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ExternalLogins.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/Index.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ManageNavPages.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ManageNavPages.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ManageNavPages.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ManageNavPages.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/ResetAuthenticator.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/SetPassword.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_Layout.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_Layout.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_Layout.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_ManageNav.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_ManageNav.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_ManageNav.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_ManageNav.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_StatusMessage.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_StatusMessage.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_StatusMessage.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_StatusMessage.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_ViewImports.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Manage/_ViewImports.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Manage/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/Register.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPassword.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/ResetPasswordConfirmation.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/SignedOut.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/_ViewImports.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Account/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Account/_ViewImports.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Account/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Contact.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Contact.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Contact.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Contact.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Contact.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Contact.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Contact.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Contact.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Error.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Error.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Error.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Error.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Error.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Error.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Error.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Error.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Index.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Index.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/Index.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/Index.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/Index.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/Index.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/Index.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml.cs b/src/Security/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml.cs rename to src/Security/samples/Identity.ExternalClaims/Pages/MyClaims.cshtml.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/_Layout.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/_Layout.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/_Layout.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/_LoginPartial.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/_LoginPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/_LoginPartial.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/_LoginPartial.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ValidationScriptsPartial.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ValidationScriptsPartial.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/_ValidationScriptsPartial.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ViewImports.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ViewImports.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ViewStart.cshtml b/src/Security/samples/Identity.ExternalClaims/Pages/_ViewStart.cshtml similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Pages/_ViewStart.cshtml rename to src/Security/samples/Identity.ExternalClaims/Pages/_ViewStart.cshtml diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Program.cs b/src/Security/samples/Identity.ExternalClaims/Program.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Program.cs rename to src/Security/samples/Identity.ExternalClaims/Program.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/README.md b/src/Security/samples/Identity.ExternalClaims/README.md similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/README.md rename to src/Security/samples/Identity.ExternalClaims/README.md diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Services/EmailSender.cs b/src/Security/samples/Identity.ExternalClaims/Services/EmailSender.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Services/EmailSender.cs rename to src/Security/samples/Identity.ExternalClaims/Services/EmailSender.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Services/IEmailSender.cs b/src/Security/samples/Identity.ExternalClaims/Services/IEmailSender.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Services/IEmailSender.cs rename to src/Security/samples/Identity.ExternalClaims/Services/IEmailSender.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/Startup.cs b/src/Security/samples/Identity.ExternalClaims/Startup.cs similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/Startup.cs rename to src/Security/samples/Identity.ExternalClaims/Startup.cs diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/appsettings.Development.json b/src/Security/samples/Identity.ExternalClaims/appsettings.Development.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/appsettings.Development.json rename to src/Security/samples/Identity.ExternalClaims/appsettings.Development.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/appsettings.json b/src/Security/samples/Identity.ExternalClaims/appsettings.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/appsettings.json rename to src/Security/samples/Identity.ExternalClaims/appsettings.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/bundleconfig.json b/src/Security/samples/Identity.ExternalClaims/bundleconfig.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/bundleconfig.json rename to src/Security/samples/Identity.ExternalClaims/bundleconfig.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/css/site.css b/src/Security/samples/Identity.ExternalClaims/wwwroot/css/site.css similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/css/site.css rename to src/Security/samples/Identity.ExternalClaims/wwwroot/css/site.css diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/css/site.min.css b/src/Security/samples/Identity.ExternalClaims/wwwroot/css/site.min.css similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/css/site.min.css rename to src/Security/samples/Identity.ExternalClaims/wwwroot/css/site.min.css diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/favicon.ico b/src/Security/samples/Identity.ExternalClaims/wwwroot/favicon.ico similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/favicon.ico rename to src/Security/samples/Identity.ExternalClaims/wwwroot/favicon.ico diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner1.svg b/src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner1.svg similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner1.svg rename to src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner1.svg diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner2.svg b/src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner2.svg similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner2.svg rename to src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner2.svg diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner3.svg b/src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner3.svg similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner3.svg rename to src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner3.svg diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner4.svg b/src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner4.svg similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/images/banner4.svg rename to src/Security/samples/Identity.ExternalClaims/wwwroot/images/banner4.svg diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/js/site.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/js/site.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/js/site.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/js/site.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/js/site.min.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/js/site.min.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/js/site.min.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/js/site.min.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/.bower.json b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/.bower.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/.bower.json rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/.bower.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/LICENSE b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/LICENSE rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/LICENSE diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/npm.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/npm.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/npm.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/bootstrap/dist/js/npm.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/.bower.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/.bower.json rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/.bower.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/.bower.json b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/.bower.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/.bower.json rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/.bower.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/LICENSE.md b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/.bower.json b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/.bower.json similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/.bower.json rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/.bower.json diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/LICENSE.txt b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/LICENSE.txt rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.js b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.js rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.min.map b/src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/AuthSamples/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Security/samples/Identity.ExternalClaims/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/AuthSamples/samples/PathSchemeSelection/.bowerrc b/src/Security/samples/PathSchemeSelection/.bowerrc similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/.bowerrc rename to src/Security/samples/PathSchemeSelection/.bowerrc diff --git a/src/AuthSamples/samples/PathSchemeSelection/Controllers/AccountController.cs b/src/Security/samples/PathSchemeSelection/Controllers/AccountController.cs similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Controllers/AccountController.cs rename to src/Security/samples/PathSchemeSelection/Controllers/AccountController.cs diff --git a/src/AuthSamples/samples/PathSchemeSelection/Controllers/HomeController.cs b/src/Security/samples/PathSchemeSelection/Controllers/HomeController.cs similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Controllers/HomeController.cs rename to src/Security/samples/PathSchemeSelection/Controllers/HomeController.cs diff --git a/src/AuthSamples/samples/PathSchemeSelection/Models/ErrorViewModel.cs b/src/Security/samples/PathSchemeSelection/Models/ErrorViewModel.cs similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Models/ErrorViewModel.cs rename to src/Security/samples/PathSchemeSelection/Models/ErrorViewModel.cs diff --git a/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj b/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj new file mode 100644 index 0000000000..feee8fa210 --- /dev/null +++ b/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj @@ -0,0 +1,15 @@ + + + + netcoreapp2.1 + true + + + + + + + + + + diff --git a/src/AuthSamples/samples/PathSchemeSelection/Program.cs b/src/Security/samples/PathSchemeSelection/Program.cs similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Program.cs rename to src/Security/samples/PathSchemeSelection/Program.cs diff --git a/src/AuthSamples/samples/PathSchemeSelection/README.md b/src/Security/samples/PathSchemeSelection/README.md similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/README.md rename to src/Security/samples/PathSchemeSelection/README.md diff --git a/src/AuthSamples/samples/PathSchemeSelection/Startup.cs b/src/Security/samples/PathSchemeSelection/Startup.cs similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Startup.cs rename to src/Security/samples/PathSchemeSelection/Startup.cs diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Account/AccessDenied.cshtml b/src/Security/samples/PathSchemeSelection/Views/Account/AccessDenied.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Account/AccessDenied.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Account/AccessDenied.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Account/Login.cshtml b/src/Security/samples/PathSchemeSelection/Views/Account/Login.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Account/Login.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Account/Login.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Home/Index.cshtml b/src/Security/samples/PathSchemeSelection/Views/Home/Index.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Home/Index.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Home/Index.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Home/MyClaims.cshtml b/src/Security/samples/PathSchemeSelection/Views/Home/MyClaims.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Home/MyClaims.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Home/MyClaims.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Shared/Error.cshtml b/src/Security/samples/PathSchemeSelection/Views/Shared/Error.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Shared/Error.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Shared/Error.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Shared/_Layout.cshtml b/src/Security/samples/PathSchemeSelection/Views/Shared/_Layout.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Shared/_Layout.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Shared/_Layout.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Security/samples/PathSchemeSelection/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/Shared/_ValidationScriptsPartial.cshtml rename to src/Security/samples/PathSchemeSelection/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/_ViewImports.cshtml b/src/Security/samples/PathSchemeSelection/Views/_ViewImports.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/_ViewImports.cshtml rename to src/Security/samples/PathSchemeSelection/Views/_ViewImports.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/Views/_ViewStart.cshtml b/src/Security/samples/PathSchemeSelection/Views/_ViewStart.cshtml similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/Views/_ViewStart.cshtml rename to src/Security/samples/PathSchemeSelection/Views/_ViewStart.cshtml diff --git a/src/AuthSamples/samples/PathSchemeSelection/appsettings.Development.json b/src/Security/samples/PathSchemeSelection/appsettings.Development.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/appsettings.Development.json rename to src/Security/samples/PathSchemeSelection/appsettings.Development.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/appsettings.json b/src/Security/samples/PathSchemeSelection/appsettings.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/appsettings.json rename to src/Security/samples/PathSchemeSelection/appsettings.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/bower.json b/src/Security/samples/PathSchemeSelection/bower.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/bower.json rename to src/Security/samples/PathSchemeSelection/bower.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/bundleconfig.json b/src/Security/samples/PathSchemeSelection/bundleconfig.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/bundleconfig.json rename to src/Security/samples/PathSchemeSelection/bundleconfig.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/css/site.css b/src/Security/samples/PathSchemeSelection/wwwroot/css/site.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/css/site.css rename to src/Security/samples/PathSchemeSelection/wwwroot/css/site.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/css/site.min.css b/src/Security/samples/PathSchemeSelection/wwwroot/css/site.min.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/css/site.min.css rename to src/Security/samples/PathSchemeSelection/wwwroot/css/site.min.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/favicon.ico b/src/Security/samples/PathSchemeSelection/wwwroot/favicon.ico similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/favicon.ico rename to src/Security/samples/PathSchemeSelection/wwwroot/favicon.ico diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner1.svg b/src/Security/samples/PathSchemeSelection/wwwroot/images/banner1.svg similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner1.svg rename to src/Security/samples/PathSchemeSelection/wwwroot/images/banner1.svg diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner2.svg b/src/Security/samples/PathSchemeSelection/wwwroot/images/banner2.svg similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner2.svg rename to src/Security/samples/PathSchemeSelection/wwwroot/images/banner2.svg diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner3.svg b/src/Security/samples/PathSchemeSelection/wwwroot/images/banner3.svg similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner3.svg rename to src/Security/samples/PathSchemeSelection/wwwroot/images/banner3.svg diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner4.svg b/src/Security/samples/PathSchemeSelection/wwwroot/images/banner4.svg similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/images/banner4.svg rename to src/Security/samples/PathSchemeSelection/wwwroot/images/banner4.svg diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/js/site.js b/src/Security/samples/PathSchemeSelection/wwwroot/js/site.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/js/site.js rename to src/Security/samples/PathSchemeSelection/wwwroot/js/site.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/js/site.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/js/site.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/js/site.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/js/site.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/.bower.json b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/.bower.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/.bower.json rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/.bower.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/LICENSE b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/LICENSE rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/LICENSE diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/npm.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/npm.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/npm.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/bootstrap/dist/js/npm.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/.bower.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/.bower.json rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/.bower.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/.bower.json b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/.bower.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/.bower.json rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/.bower.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/LICENSE.md b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/.bower.json b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/.bower.json similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/.bower.json rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/.bower.json diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/LICENSE.txt b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/LICENSE.txt rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.js b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.js rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.map b/src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/AuthSamples/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Security/samples/PathSchemeSelection/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj b/src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj new file mode 100644 index 0000000000..6c693b9a22 --- /dev/null +++ b/src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj @@ -0,0 +1,32 @@ + + + + netcoreapp2.1 + false + + + + + + AnyCPU + + + + + + + + + + + + + + + + + + + + + diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/ClaimsTransformTests.cs b/src/Security/test/AuthSamples.FunctionalTests/ClaimsTransformTests.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/ClaimsTransformTests.cs rename to src/Security/test/AuthSamples.FunctionalTests/ClaimsTransformTests.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/CookiesTests.cs b/src/Security/test/AuthSamples.FunctionalTests/CookiesTests.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/CookiesTests.cs rename to src/Security/test/AuthSamples.FunctionalTests/CookiesTests.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs b/src/Security/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs rename to src/Security/test/AuthSamples.FunctionalTests/DynamicSchemeTests.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/IdentityExternalClaimsTests.cs b/src/Security/test/AuthSamples.FunctionalTests/IdentityExternalClaimsTests.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/IdentityExternalClaimsTests.cs rename to src/Security/test/AuthSamples.FunctionalTests/IdentityExternalClaimsTests.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/PathSchemeSelectionTests.cs b/src/Security/test/AuthSamples.FunctionalTests/PathSchemeSelectionTests.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/PathSchemeSelectionTests.cs rename to src/Security/test/AuthSamples.FunctionalTests/PathSchemeSelectionTests.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/TestServices.cs b/src/Security/test/AuthSamples.FunctionalTests/TestServices.cs similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/TestServices.cs rename to src/Security/test/AuthSamples.FunctionalTests/TestServices.cs diff --git a/src/AuthSamples/test/AuthSamples.FunctionalTests/xunit.runner.json b/src/Security/test/AuthSamples.FunctionalTests/xunit.runner.json similarity index 100% rename from src/AuthSamples/test/AuthSamples.FunctionalTests/xunit.runner.json rename to src/Security/test/AuthSamples.FunctionalTests/xunit.runner.json From fe20f9240d30264e4e27c0838690f64985a5a846 Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Fri, 11 Jan 2019 11:47:33 -0800 Subject: [PATCH 2/9] Fix #3503 - update buildtools dependency on DependencyModel to 2.1.0 The 2.0 version of the Microsoft.Extensions.DependencyModel does not support the assembly/file version metadata. We must have at least 2.1. Between 2.1.6 and 2.1.7, we switched the build to use MSBuild.exe ("full" MSBuild) instead of `dotnet msbuild` ("core" MSBuild). MSBuild has different assembly loaders behaviors in core vs full. By switching MSBuild types, we were also unintentionally switching the version of Microsoft.Extensions.DependencyModel.dll that was being used by our build task from 2.1 back down to 2.0. The reason we didn't discover this in earlier 2.1.x patches is that building on msbuild core automatically upgraded our build tasks to Microsoft.Extensions.DependencyModel.dll, Version=2.1.0.0. This happens because of differences in the way .NET Core and MSBuild handles assemblies with the same ID and different versions, and differences in the layout of MSBuild and the .NET Core CLI. In the end, this happened because we didn't have test coverage. MSBuild and custom tasks burned asagain, but we should have just had unit tests all along, which would have uncovered this regression as soon as we switched to msbuild.exe. --- build/dependencies.props | 2 +- test/SharedFx.UnitTests/SharedFxTests.cs | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/build/dependencies.props b/build/dependencies.props index d6e1e63e78..e3872095db 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -98,7 +98,7 @@ 0.10.13 4.2.1 2.1.0-prerelease-02430-04 - 2.0.0 + 2.1.0 8.7.0 4.2.1 3.1.0 diff --git a/test/SharedFx.UnitTests/SharedFxTests.cs b/test/SharedFx.UnitTests/SharedFxTests.cs index d18fa17ef8..36160360df 100644 --- a/test/SharedFx.UnitTests/SharedFxTests.cs +++ b/test/SharedFx.UnitTests/SharedFxTests.cs @@ -47,6 +47,28 @@ namespace Microsoft.AspNetCore Assert.NotNull(depsFile["compilationOptions"]); Assert.Empty(depsFile["compilationOptions"]); Assert.NotEmpty(depsFile["runtimes"][config.RuntimeIdentifier]); + + var targetLibraries = depsFile["targets"][target]; + Assert.All(targetLibraries, libEntry => + { + var lib = Assert.IsType(libEntry); + if (lib.Value["runtime"] == null) + { + return; + } + + Assert.All(lib.Value["runtime"], item => + { + var obj = Assert.IsType(item); + var assemblyVersion = obj.Value["assemblyVersion"]; + Assert.NotNull(assemblyVersion); + Assert.NotEmpty(assemblyVersion.Value()); + + var fileVersion = obj.Value["fileVersion"]; + Assert.NotNull(fileVersion); + Assert.NotEmpty(fileVersion.Value()); + }); + }); } [Theory] From 180f735ac8c4e96ffe78aed4b93acfcbb2359599 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Wed, 16 Jan 2019 11:16:35 +1300 Subject: [PATCH 3/9] Fix non-parameter route constraints not called with endpoint routing for 2.2 (#6587) --- eng/PatchConfig.props | 1 + .../Internal/MvcEndpointDataSource.cs | 15 ++- .../Internal/MvcEndpointDataSourceTests.cs | 104 ++++++++++++++++++ .../RoutingTestsBase.cs | 26 +++++ .../NonParameterConstraintController.cs | 26 +++++ .../RoutingWebSite/QueryStringConstraint.cs | 16 +++ .../test/WebSites/RoutingWebSite/Startup.cs | 6 + .../RoutingWebSite/StartupWith21Compat.cs | 6 + 8 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/Controllers/NonParameterConstraintController.cs create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/QueryStringConstraint.cs diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index 42789ba1b1..cb12734457 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -31,6 +31,7 @@ Later on, this will be checked using this condition: Microsoft.AspNetCore.AspNetCoreModuleV2; Microsoft.AspNetCore.Authentication.Google; Microsoft.AspNetCore.Http; + Microsoft.AspNetCore.Mvc.Core; Microsoft.AspNetCore.Server.IIS; java:signalr; diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcEndpointDataSource.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcEndpointDataSource.cs index df110bee25..e63cda39fe 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcEndpointDataSource.cs +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcEndpointDataSource.cs @@ -224,6 +224,15 @@ namespace Microsoft.AspNetCore.Mvc.Internal var newPathSegments = routePattern.PathSegments.ToList(); var hasLinkGenerationEndpoint = false; + // This is required because we create modified copies of the route pattern using its segments + // A segment with a parameter will automatically include its policies + // Non-parameter policies need to be manually included + var nonParameterPolicyValues = routePattern.ParameterPolicies + .Where(p => routePattern.GetParameter(p.Key ?? string.Empty) == null && p.Value.Count > 0 && p.Value.First().ParameterPolicy != null) // Only GetParameter is required. Extra is for safety + .Select(p => new KeyValuePair(p.Key, p.Value.First().ParameterPolicy)) // Can only pass a single non-parameter to RouteParameter + .ToArray(); + var nonParameterPolicies = RouteValueDictionary.FromArray(nonParameterPolicyValues); + // Create a mutable copy var nonInlineDefaultsCopy = nonInlineDefaults != null ? new RouteValueDictionary(nonInlineDefaults) @@ -259,6 +268,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal resolvedRouteValues, name, GetPattern(ref patternStringBuilder, newPathSegments), + nonParameterPolicies, newPathSegments, nonInlineDefaultsCopy, routeOrder++, @@ -277,6 +287,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal resolvedRouteValues, name, GetPattern(ref patternStringBuilder, subPathSegments), + nonParameterPolicies, subPathSegments, nonInlineDefaultsCopy, routeOrder++, @@ -294,6 +305,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal resolvedRouteValues, name, GetPattern(ref patternStringBuilder, newPathSegments), + nonParameterPolicies, newPathSegments, nonInlineDefaultsCopy, routeOrder++, @@ -531,6 +543,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal IDictionary actionRouteValues, string routeName, string patternRawText, + object nonParameterPolicies, IEnumerable segments, object nonInlineDefaults, int order, @@ -561,7 +574,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal var endpoint = new RouteEndpoint( requestDelegate, - RoutePatternFactory.Pattern(patternRawText, defaults, parameterPolicies: null, segments), + RoutePatternFactory.Pattern(patternRawText, defaults, nonParameterPolicies, segments), order, metadataCollection, action.DisplayName); diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/MvcEndpointDataSourceTests.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/MvcEndpointDataSourceTests.cs index a3e0ebe5c3..40c51069f5 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/MvcEndpointDataSourceTests.cs +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/MvcEndpointDataSourceTests.cs @@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Routing; +using Microsoft.AspNetCore.Routing.Constraints; using Microsoft.AspNetCore.Routing.Matching; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -311,6 +312,109 @@ namespace Microsoft.AspNetCore.Mvc.Internal Assert.Empty(endpoints); } + [Fact] + public void Endpoints_SingleAction_ConventionalRoute_ContainsNonParameterConstraint() + { + // Arrange + var actionDescriptorCollection = GetActionDescriptorCollection( + new { controller = "TestController", action = "TestAction", page = (string)null }); + var dataSource = CreateMvcEndpointDataSource(actionDescriptorCollection); + dataSource.ConventionalEndpointInfos.Add(CreateEndpointInfo( + string.Empty, + "{controller}/{action}/{id:range(0, 100)}", + new RouteValueDictionary(new { action = "TestAction" }), + new RouteValueDictionary(new { controller = "TestController", nonParameter = new CustomConstraint(), id = new IntRouteConstraint() }))); + + // Act + var endpoints = dataSource.Endpoints; + + // Assert + var endpoint = Assert.IsType(Assert.Single(endpoints)); + + var routePattern = endpoint.RoutePattern; + + Assert.Equal("TestController/TestAction/{id::range(0, 100)}", routePattern.RawText); + Assert.Collection(routePattern.ParameterPolicies.OrderBy(p => p.Key), + p => + { + Assert.Equal("id", p.Key); + Assert.Collection(p.Value, + c => Assert.IsType(c.ParameterPolicy), + c => Assert.Equal("range(0, 100)", c.Content)); + }, + p => + { + Assert.Equal("nonParameter", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }); + } + + [Fact] + public void Endpoints_SingleAction_ConventionalRouteWithOptional_ContainsNonParameterConstraint() + { + // Arrange + var actionDescriptorCollection = GetActionDescriptorCollection( + new { controller = "TestController", action = "TestAction", page = (string)null }); + var dataSource = CreateMvcEndpointDataSource(actionDescriptorCollection); + dataSource.ConventionalEndpointInfos.Add(CreateEndpointInfo( + string.Empty, + "{controller}/{action}/{id?}", + new RouteValueDictionary(new { action = "TestAction" }), + new RouteValueDictionary(new { controller = "TestController", nonParameter = new CustomConstraint(), id = new IntRouteConstraint() }))); + + // Act + var endpoints = dataSource.Endpoints; + + // Assert + var endpoint1 = Assert.IsType(endpoints[0]); + var routePattern1 = endpoint1.RoutePattern; + Assert.Equal("TestController/{action=TestAction}/{id:?}", routePattern1.RawText); + Assert.Collection(routePattern1.ParameterPolicies.OrderBy(p => p.Key), + p => + { + Assert.Equal("id", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }, + p => + { + Assert.Equal("nonParameter", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }); + + var endpoint2 = Assert.IsType(endpoints[1]); + var routePattern2 = endpoint2.RoutePattern; + Assert.Equal("TestController", routePattern2.RawText); + Assert.Collection(routePattern2.ParameterPolicies.OrderBy(p => p.Key), + p => + { + Assert.Equal("nonParameter", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }); + + var endpoint3 = Assert.IsType(endpoints[2]); + var routePattern3 = endpoint3.RoutePattern; + Assert.Equal("TestController/TestAction/{id:?}", routePattern3.RawText); + Assert.Collection(routePattern3.ParameterPolicies.OrderBy(p => p.Key), + p => + { + Assert.Equal("id", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }, + p => + { + Assert.Equal("nonParameter", p.Key); + Assert.IsType(p.Value.Single().ParameterPolicy); + }); + } + + private class CustomConstraint : IRouteConstraint + { + public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + { + throw new NotImplementedException(); + } + } + [Fact] public void Endpoints_SingleAction_AttributeRoute_ContainsParameterWithNullRequiredRouteValue() { diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RoutingTestsBase.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RoutingTestsBase.cs index a58e745b47..f896e5e301 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RoutingTestsBase.cs +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RoutingTestsBase.cs @@ -26,6 +26,32 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests public HttpClient Client { get; } + [Fact] + public async Task ConventionalRoutedAction_RouteHasNonParameterConstraint_RouteConstraintRun_Allowed() + { + // Arrange & Act + var response = await Client.GetAsync("http://localhost/NonParameterConstraintRoute/NonParameterConstraint/Index?allowed=true"); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + var body = await response.Content.ReadAsStringAsync(); + var result = JsonConvert.DeserializeObject(body); + + Assert.Equal("NonParameterConstraint", result.Controller); + Assert.Equal("Index", result.Action); + } + + [Fact] + public async Task ConventionalRoutedAction_RouteHasNonParameterConstraint_RouteConstraintRun_Denied() + { + // Arrange & Act + var response = await Client.GetAsync("http://localhost/NonParameterConstraintRoute/NonParameterConstraint/Index?allowed=false"); + + // Assert + Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); + } + [Fact] public async Task ConventionalRoutedAction_RouteContainsPage_RouteNotMatched() { diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Controllers/NonParameterConstraintController.cs b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/NonParameterConstraintController.cs new file mode 100644 index 0000000000..af9ac7e600 --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/NonParameterConstraintController.cs @@ -0,0 +1,26 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace RoutingWebSite +{ + public class NonParameterConstraintController : Controller + { + private readonly TestResponseGenerator _generator; + + public NonParameterConstraintController(TestResponseGenerator generator) + { + _generator = generator; + } + + public IActionResult Index() + { + return _generator.Generate("/NonParameterConstraintRoute/NonParameterConstraint/Index"); + } + } +} diff --git a/src/Mvc/test/WebSites/RoutingWebSite/QueryStringConstraint.cs b/src/Mvc/test/WebSites/RoutingWebSite/QueryStringConstraint.cs new file mode 100644 index 0000000000..d4661e0139 --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/QueryStringConstraint.cs @@ -0,0 +1,16 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Routing; + +namespace RoutingWebSite +{ + public class QueryStringConstraint : IRouteConstraint + { + public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + { + return httpContext.Request.Query["allowed"].ToString() == "true"; + } + } +} diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Startup.cs b/src/Mvc/test/WebSites/RoutingWebSite/Startup.cs index 44bc08a25f..f43b96e2e9 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/Startup.cs +++ b/src/Mvc/test/WebSites/RoutingWebSite/Startup.cs @@ -49,6 +49,12 @@ namespace RoutingWebSite { app.UseMvc(routes => { + routes.MapRoute( + "NonParameterConstraintRoute", + "NonParameterConstraintRoute/{controller}/{action}", + defaults: null, + constraints: new { controller = "NonParameterConstraint", nonParameter = new QueryStringConstraint() }); + routes.MapRoute( "DataTokensRoute", "DataTokensRoute/{controller}/{action}", diff --git a/src/Mvc/test/WebSites/RoutingWebSite/StartupWith21Compat.cs b/src/Mvc/test/WebSites/RoutingWebSite/StartupWith21Compat.cs index 9b78b66d32..93a4ca2ea0 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/StartupWith21Compat.cs +++ b/src/Mvc/test/WebSites/RoutingWebSite/StartupWith21Compat.cs @@ -54,6 +54,12 @@ namespace RoutingWebSite { app.UseMvc(routes => { + routes.MapRoute( + "NonParameterConstraintRoute", + "NonParameterConstraintRoute/{controller}/{action}", + defaults: null, + constraints: new { controller = "NonParameterConstraint", nonParameter = new QueryStringConstraint() }); + routes.MapRoute( "DataTokensRoute", "DataTokensRoute/{controller}/{action}", From 0622513058eff9a4374a0edca726d2c62959ea1e Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Tue, 15 Jan 2019 14:54:10 -0800 Subject: [PATCH 4/9] Wait to dispose RequestAborted CTS (#4447) --- eng/PatchConfig.props | 1 + .../Core/src/Internal/Http/HttpProtocol.cs | 36 +++++++++---------- .../Kestrel/Core/test/Http1ConnectionTests.cs | 25 ++++++++++++- 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index cb12734457..d9ee2e8f4e 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -33,6 +33,7 @@ Later on, this will be checked using this condition: Microsoft.AspNetCore.Http; Microsoft.AspNetCore.Mvc.Core; Microsoft.AspNetCore.Server.IIS; + Microsoft.AspNetCore.Server.Kestrel.Core; java:signalr; diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs index 3309701e0a..cf7ca09e9a 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs @@ -348,11 +348,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http // Lock to prevent CancelRequestAbortedToken from attempting to cancel an disposed CTS. lock (_abortLock) { - if (!_requestAborted) - { - _abortedCts?.Dispose(); - _abortedCts = null; - } + _abortedCts?.Dispose(); + _abortedCts = null; } _requestHeadersParsed = 0; @@ -394,15 +391,16 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http private void CancelRequestAbortedToken() { - try + lock (_abortLock) { - _abortedCts.Cancel(); - _abortedCts.Dispose(); - _abortedCts = null; - } - catch (Exception ex) - { - Log.ApplicationError(ConnectionId, TraceIdentifier, ex); + try + { + _abortedCts?.Cancel(); + } + catch (Exception ex) + { + Log.ApplicationError(ConnectionId, TraceIdentifier, ex); + } } } @@ -416,12 +414,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http } _requestAborted = true; - } - if (_abortedCts != null) - { - // Potentially calling user code. CancelRequestAbortedToken logs any exceptions. - ServiceContext.Scheduler.Schedule(state => ((HttpProtocol)state).CancelRequestAbortedToken(), this); + if (_abortedCts != null && !_preventRequestAbortedCancellation) + { + // Potentially calling user code. CancelRequestAbortedToken logs any exceptions. + ServiceContext.Scheduler.Schedule(state => ((HttpProtocol)state).CancelRequestAbortedToken(), this); + } } } @@ -441,8 +439,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http } _preventRequestAbortedCancellation = true; - _abortedCts?.Dispose(); - _abortedCts = null; } } diff --git a/src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs b/src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs index d60303d625..70301631ed 100644 --- a/src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs +++ b/src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs @@ -53,7 +53,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests var connectionFeatures = new FeatureCollection(); connectionFeatures.Set(Mock.Of()); - _serviceContext = new TestServiceContext(); + _serviceContext = new TestServiceContext() + { + Scheduler = PipeScheduler.Inline + }; + _timeoutControl = new Mock(); _http1ConnectionContext = new HttpConnectionContext { @@ -724,6 +728,25 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests Assert.False(_http1Connection.RequestAborted.IsCancellationRequested); } + [Fact] + public void RequestAbortedTokenIsFullyUsableAfterCancellation() + { + var originalToken = _http1Connection.RequestAborted; + var originalRegistration = originalToken.Register(() => { }); + + _http1Connection.Abort(new ConnectionAbortedException()); + + Assert.True(originalToken.WaitHandle.WaitOne(TestConstants.DefaultTimeout)); + Assert.True(_http1Connection.RequestAborted.WaitHandle.WaitOne(TestConstants.DefaultTimeout)); + +#if NETCOREAPP2_2 + Assert.Equal(originalToken, originalRegistration.Token); +#elif NET461 +#else +#error Target framework needs to be updated +#endif + } + [Fact] public async Task ExceptionDetailNotIncludedWhenLogLevelInformationNotEnabled() { From 92680b355ff450975a31a2f0f68988ed37d3bd3b Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Wed, 16 Jan 2019 11:55:54 +1300 Subject: [PATCH 5/9] Change consumes behavior to ignore requests with no content type (#6645) --- eng/PatchConfig.props | 1 + .../ConsumesAttribute.cs | 5 +- .../Routing/ConsumesMatcherPolicy.cs | 49 ++++++++++++++++--- .../ConsumesAttributeTests.cs | 5 +- .../Routing/ConsumesMatcherPolicyTest.cs | 13 ++++- .../ConsumesAttributeTestsBase.cs | 25 ++++++++-- ...ConsumesAttribute_PassThroughController.cs | 12 +++++ ...sAttribute_WithFallbackActionController.cs | 2 +- .../StartupWithEndpointRouting.cs | 2 + 9 files changed, 98 insertions(+), 16 deletions(-) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index d9ee2e8f4e..cac2b904f0 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -32,6 +32,7 @@ Later on, this will be checked using this condition: Microsoft.AspNetCore.Authentication.Google; Microsoft.AspNetCore.Http; Microsoft.AspNetCore.Mvc.Core; + Microsoft.AspNetCore.Routing; Microsoft.AspNetCore.Server.IIS; Microsoft.AspNetCore.Server.Kestrel.Core; java:signalr; diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ConsumesAttribute.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ConsumesAttribute.cs index 30a103a531..ed4893046e 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ConsumesAttribute.cs +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/ConsumesAttribute.cs @@ -77,7 +77,10 @@ namespace Microsoft.AspNetCore.Mvc // Confirm the request's content type is more specific than a media type this action supports e.g. OK // if client sent "text/plain" data and this action supports "text/*". - if (requestContentType == null || !IsSubsetOfAnyContentType(requestContentType)) + // + // Requests without a content type do not return a 415. It is a common pattern to place [Consumes] on + // a controller and have GET actions + if (requestContentType != null && !IsSubsetOfAnyContentType(requestContentType)) { context.Result = new UnsupportedMediaTypeResult(); } diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Routing/ConsumesMatcherPolicy.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Routing/ConsumesMatcherPolicy.cs index c0f0dd35bd..fcd959225d 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Routing/ConsumesMatcherPolicy.cs +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Routing/ConsumesMatcherPolicy.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Mvc.Formatters; using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.Routing.Matching; using Microsoft.AspNetCore.Routing.Patterns; +using Microsoft.Extensions.Primitives; namespace Microsoft.AspNetCore.Mvc.Routing { @@ -120,13 +121,23 @@ namespace Microsoft.AspNetCore.Mvc.Routing // If after we're done there isn't any endpoint that accepts */*, then we'll synthesize an // endpoint that always returns a 415. - if (!edges.ContainsKey(AnyContentType)) + if (!edges.TryGetValue(AnyContentType, out var anyEndpoints)) { edges.Add(AnyContentType, new List() { CreateRejectionEndpoint(), }); + + // Add a node to use when there is no request content type. + // When there is no content type we want the policy to no-op + edges.Add(string.Empty, endpoints.ToList()); } + else + { + // If there is an endpoint that accepts */* then it is also used when there is no content type + edges.Add(string.Empty, anyEndpoints.ToList()); + } + return edges .Select(kvp => new PolicyNodeEdge(kvp.Key, kvp.Value)) @@ -155,7 +166,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing // Since our 'edges' can have wildcards, we do a sort based on how wildcard-ey they // are then then execute them in linear order. var ordered = edges - .Select(e => (mediaType: new MediaType((string)e.State), destination: e.Destination)) + .Select(e => (mediaType: CreateEdgeMediaType(ref e), destination: e.Destination)) .OrderBy(e => GetScore(e.mediaType)) .ToArray(); @@ -170,7 +181,28 @@ namespace Microsoft.AspNetCore.Mvc.Routing } } - return new ConsumesPolicyJumpTable(exitDestination, ordered); + var noContentTypeDestination = GetNoContentTypeDestination(ordered); + + return new ConsumesPolicyJumpTable(exitDestination, noContentTypeDestination, ordered); + } + + private static int GetNoContentTypeDestination((MediaType mediaType, int destination)[] destinations) + { + for (var i = 0; i < destinations.Length; i++) + { + if (!destinations[i].mediaType.Type.HasValue) + { + return destinations[i].destination; + } + } + + throw new InvalidOperationException("Could not find destination for no content type."); + } + + private static MediaType CreateEdgeMediaType(ref PolicyJumpTableEdge e) + { + var mediaType = (string)e.State; + return !string.IsNullOrEmpty(mediaType) ? new MediaType(mediaType) : default; } private int GetScore(in MediaType mediaType) @@ -207,21 +239,24 @@ namespace Microsoft.AspNetCore.Mvc.Routing private class ConsumesPolicyJumpTable : PolicyJumpTable { - private (MediaType mediaType, int destination)[] _destinations; - private int _exitDestination; + private readonly (MediaType mediaType, int destination)[] _destinations; + private readonly int _exitDestination; + private readonly int _noContentTypeDestination; - public ConsumesPolicyJumpTable(int exitDestination, (MediaType mediaType, int destination)[] destinations) + public ConsumesPolicyJumpTable(int exitDestination, int noContentTypeDestination, (MediaType mediaType, int destination)[] destinations) { _exitDestination = exitDestination; + _noContentTypeDestination = noContentTypeDestination; _destinations = destinations; } public override int GetDestination(HttpContext httpContext) { var contentType = httpContext.Request.ContentType; + if (string.IsNullOrEmpty(contentType)) { - return _exitDestination; + return _noContentTypeDestination; } var requestMediaType = new MediaType(contentType); diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ConsumesAttributeTests.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ConsumesAttributeTests.cs index 1ecf35fb8e..5ee4e4178a 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ConsumesAttributeTests.cs +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ConsumesAttributeTests.cs @@ -326,7 +326,7 @@ namespace Microsoft.AspNetCore.Mvc [Theory] [InlineData("")] [InlineData(null)] - public void OnResourceExecuting_NullOrEmptyRequestContentType_SetsUnsupportedMediaTypeResult(string contentType) + public void OnResourceExecuting_NullOrEmptyRequestContentType_IsNoOp(string contentType) { // Arrange var httpContext = new DefaultHttpContext(); @@ -349,8 +349,7 @@ namespace Microsoft.AspNetCore.Mvc consumesFilter.OnResourceExecuting(resourceExecutingContext); // Assert - Assert.NotNull(resourceExecutingContext.Result); - Assert.IsType(resourceExecutingContext.Result); + Assert.Null(resourceExecutingContext.Result); } [Theory] diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Routing/ConsumesMatcherPolicyTest.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Routing/ConsumesMatcherPolicyTest.cs index b0a59ce678..6a3876b1ae 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Routing/ConsumesMatcherPolicyTest.cs +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Routing/ConsumesMatcherPolicyTest.cs @@ -91,6 +91,11 @@ namespace Microsoft.AspNetCore.Mvc.Routing Assert.Collection( edges.OrderBy(e => e.State), e => + { + Assert.Equal(string.Empty, e.State); + Assert.Equal(new[] { endpoints[1], endpoints[4], }, e.Endpoints.ToArray()); + }, + e => { Assert.Equal("*/*", e.State); Assert.Equal(new[] { endpoints[1], endpoints[4], }, e.Endpoints.ToArray()); @@ -123,7 +128,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing } [Fact] // See explanation in GetEdges for how this case is different - public void GetEdges_GroupsByContentType_CreatesHttp405Endpoint() + public void GetEdges_GroupsByContentType_CreatesHttp415Endpoint() { // Arrange var endpoints = new[] @@ -144,6 +149,11 @@ namespace Microsoft.AspNetCore.Mvc.Routing Assert.Collection( edges.OrderBy(e => e.State), e => + { + Assert.Equal(string.Empty, e.State); + Assert.Equal(new[] { endpoints[0], endpoints[1], endpoints[2], }, e.Endpoints.ToArray()); + }, + e => { Assert.Equal("*/*", e.State); Assert.Equal(ConsumesMatcherPolicy.Http415EndpointDisplayName, Assert.Single(e.Endpoints).DisplayName); @@ -190,6 +200,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing var edges = new PolicyJumpTableEdge[] { // In reverse order of how they should be processed + new PolicyJumpTableEdge(string.Empty, 0), new PolicyJumpTableEdge("*/*", 1), new PolicyJumpTableEdge("application/*", 2), new PolicyJumpTableEdge("text/*", 3), diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ConsumesAttributeTestsBase.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ConsumesAttributeTestsBase.cs index 9a978d2662..9836ff8dff 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ConsumesAttributeTestsBase.cs +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ConsumesAttributeTestsBase.cs @@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests // Arrange var request = new HttpRequestMessage( HttpMethod.Post, - "http://localhost/ConsumesAttribute_Company/CreateProduct"); + "http://localhost/ConsumesAttribute_WithFallbackActionController/CreateProduct"); // Act var response = await Client.SendAsync(request); @@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests } [Fact] - public async Task NoRequestContentType_Selects_IfASingleActionWithConstraintIsPresent_ReturnsUnsupported() + public async Task NoRequestContentType_Selects_IfASingleActionWithConstraintIsPresent() { // Arrange var request = new HttpRequestMessage( @@ -58,7 +58,26 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests // Act var response = await Client.SendAsync(request); - await response.AssertStatusCodeAsync(HttpStatusCode.UnsupportedMediaType); + var body = await response.Content.ReadAsStringAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.Equal("ConsumesAttribute_PassThrough_Product_Json", body); + } + + [Fact] + public async Task NoRequestContentType_MultipleMatches_IfAMultipleActionWithConstraintIsPresent() + { + // Arrange + var request = new HttpRequestMessage( + HttpMethod.Post, + "http://localhost/ConsumesAttribute_PassThrough/CreateProductMultiple"); + + // Act + var response = await Client.SendAsync(request); + + // Assert + Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); } [Theory] diff --git a/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_PassThroughController.cs b/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_PassThroughController.cs index ce405047c8..a689368d0a 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_PassThroughController.cs +++ b/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_PassThroughController.cs @@ -14,5 +14,17 @@ namespace BasicWebSite.Controllers.ActionConstraints { return Content("ConsumesAttribute_PassThrough_Product_Json"); } + + [Consumes("application/json")] + public IActionResult CreateProductMultiple(Product_Json jsonInput) + { + return Content("ConsumesAttribute_PassThrough_Product_Json"); + } + + [Consumes("application/xml")] + public IActionResult CreateProductMultiple(Product_Xml jsonInput) + { + return Content("ConsumesAttribute_PassThrough_Product_Xml"); + } } } \ No newline at end of file diff --git a/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_WithFallbackActionController.cs b/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_WithFallbackActionController.cs index eb92870096..c2332699ad 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_WithFallbackActionController.cs +++ b/src/Mvc/test/WebSites/BasicWebSite/Controllers/ActionConstraints/ConsumesAttribute_WithFallbackActionController.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc; namespace BasicWebSite.Controllers.ActionConstraints { - [Route("ConsumesAttribute_Company/[action]")] + [Route("ConsumesAttribute_WithFallbackActionController/[action]")] public class ConsumesAttribute_WithFallbackActionController : Controller { [Consumes("application/json")] diff --git a/src/Mvc/test/WebSites/BasicWebSite/StartupWithEndpointRouting.cs b/src/Mvc/test/WebSites/BasicWebSite/StartupWithEndpointRouting.cs index 01726c53e5..bf1e8ff394 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/StartupWithEndpointRouting.cs +++ b/src/Mvc/test/WebSites/BasicWebSite/StartupWithEndpointRouting.cs @@ -29,6 +29,8 @@ namespace BasicWebSite public void Configure(IApplicationBuilder app) { + app.UseDeveloperExceptionPage(); + // Initializes the RequestId service for each request app.UseMiddleware(); From cd308e7a8b662c2550bf796445ee4ee08017fdd0 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Wed, 16 Jan 2019 12:00:57 +1300 Subject: [PATCH 6/9] Fix HttpContext not being passed to constraints in link generation (#6644) --- src/Http/Routing/src/DefaultLinkGenerator.cs | 9 +++-- .../UnitTests/DefaultLinkGeneratorTest.cs | 38 ++++++++++++++++++- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/Http/Routing/src/DefaultLinkGenerator.cs b/src/Http/Routing/src/DefaultLinkGenerator.cs index 086d9bf026..9b9f040cd2 100644 --- a/src/Http/Routing/src/DefaultLinkGenerator.cs +++ b/src/Http/Routing/src/DefaultLinkGenerator.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -90,6 +90,7 @@ namespace Microsoft.AspNetCore.Routing } return GetPathByEndpoints( + httpContext, endpoints, values, ambientValues, @@ -112,6 +113,7 @@ namespace Microsoft.AspNetCore.Routing } return GetPathByEndpoints( + httpContext: null, endpoints, values, ambientValues: null, @@ -206,7 +208,8 @@ namespace Microsoft.AspNetCore.Routing return endpoints; } - public string GetPathByEndpoints( + private string GetPathByEndpoints( + HttpContext httpContext, List endpoints, RouteValueDictionary values, RouteValueDictionary ambientValues, @@ -218,7 +221,7 @@ namespace Microsoft.AspNetCore.Routing { var endpoint = endpoints[i]; if (TryProcessTemplate( - httpContext: null, + httpContext: httpContext, endpoint: endpoint, values: values, ambientValues: ambientValues, diff --git a/src/Http/Routing/test/UnitTests/DefaultLinkGeneratorTest.cs b/src/Http/Routing/test/UnitTests/DefaultLinkGeneratorTest.cs index 3c20c704a0..6d0c9204b3 100644 --- a/src/Http/Routing/test/UnitTests/DefaultLinkGeneratorTest.cs +++ b/src/Http/Routing/test/UnitTests/DefaultLinkGeneratorTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -524,6 +524,42 @@ namespace Microsoft.AspNetCore.Routing Assert.Equal("ftp://example.com:5000/Home/Index", uri); } + [Fact] + public void GetPathByAddress_WithHttpContext_ContextPassedToConstraint() + { + // Arrange + var constraint = new TestRouteConstraint(); + + var endpoint1 = EndpointFactory.CreateRouteEndpoint("{controller}/{action}/{id?}", policies: new { controller = constraint }, metadata: new object[] { new IntMetadata(1), }); + + var linkGenerator = CreateLinkGenerator(endpoint1); + + var httpContext = CreateHttpContext(); + httpContext.Request.PathBase = "/Foo"; + + // Act + var uri = linkGenerator.GetPathByAddress( + httpContext, + 1, + values: new RouteValueDictionary(new { action = "Index", controller = "Home", }), + pathBase: "/"); + + // Assert + Assert.Equal("/Home/Index", uri); + Assert.True(constraint.HasHttpContext); + } + + private class TestRouteConstraint : IRouteConstraint + { + public bool HasHttpContext { get; set; } + + public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + { + HasHttpContext = (httpContext != null); + return true; + } + } + [Fact] public void GetTemplateBinder_CanCache() { From 4a2a8942d4c97898a199c5a16dbe759457dadd26 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Tue, 15 Jan 2019 16:44:10 -0800 Subject: [PATCH 7/9] Cleanup --- .../Framework.UnitTests/SharedFxTests.cs | 9 ------ .../test/FunctionalTests/package-lock.json | 28 +++++-------------- .../ts/FunctionalTests/package-lock.json | 28 +++++-------------- .../clients/ts/common/package-lock.json | 28 +++++-------------- 4 files changed, 21 insertions(+), 72 deletions(-) diff --git a/src/Framework/Framework.UnitTests/SharedFxTests.cs b/src/Framework/Framework.UnitTests/SharedFxTests.cs index 892f43452f..28deb9a2ad 100644 --- a/src/Framework/Framework.UnitTests/SharedFxTests.cs +++ b/src/Framework/Framework.UnitTests/SharedFxTests.cs @@ -43,14 +43,6 @@ namespace Microsoft.AspNetCore Assert.NotNull(depsFile["compilationOptions"]); Assert.Empty(depsFile["compilationOptions"]); Assert.NotEmpty(depsFile["runtimes"][config.RuntimeIdentifier]); -<<<<<<< HEAD:src/Framework/Framework.UnitTests/SharedFxTests.cs - Assert.All(depsFile["libraries"], item => - { - var prop = Assert.IsType(item); - var lib = Assert.IsType(prop.Value); - Assert.Equal("package", lib["type"].Value()); - Assert.StartsWith("sha512-", lib["sha512"].Value()); -======= var targetLibraries = depsFile["targets"][target]; Assert.All(targetLibraries, libEntry => @@ -72,7 +64,6 @@ namespace Microsoft.AspNetCore Assert.NotNull(fileVersion); Assert.NotEmpty(fileVersion.Value()); }); ->>>>>>> release/2.1:test/SharedFx.UnitTests/SharedFxTests.cs }); } diff --git a/src/Middleware/CORS/test/FunctionalTests/package-lock.json b/src/Middleware/CORS/test/FunctionalTests/package-lock.json index d9ea7ae2f6..3db2468bdf 100644 --- a/src/Middleware/CORS/test/FunctionalTests/package-lock.json +++ b/src/Middleware/CORS/test/FunctionalTests/package-lock.json @@ -1689,14 +1689,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1711,20 +1709,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -1841,8 +1836,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -1854,7 +1848,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1869,7 +1862,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1877,14 +1869,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -1903,7 +1893,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -1984,8 +1973,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -1997,7 +1985,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -2119,7 +2106,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/src/SignalR/clients/ts/FunctionalTests/package-lock.json b/src/SignalR/clients/ts/FunctionalTests/package-lock.json index e2b24fb2bb..98ea76c951 100644 --- a/src/SignalR/clients/ts/FunctionalTests/package-lock.json +++ b/src/SignalR/clients/ts/FunctionalTests/package-lock.json @@ -1827,14 +1827,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1849,20 +1847,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -1979,8 +1974,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -1992,7 +1986,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2007,7 +2000,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2015,14 +2007,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2041,7 +2031,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -2122,8 +2111,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2135,7 +2123,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -2257,7 +2244,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/src/SignalR/clients/ts/common/package-lock.json b/src/SignalR/clients/ts/common/package-lock.json index 8b3564efc7..64f49215ce 100644 --- a/src/SignalR/clients/ts/common/package-lock.json +++ b/src/SignalR/clients/ts/common/package-lock.json @@ -2622,14 +2622,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2644,20 +2642,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2774,8 +2769,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -2787,7 +2781,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2802,7 +2795,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2810,14 +2802,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2836,7 +2826,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -2917,8 +2906,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2930,7 +2918,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -3052,7 +3039,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", From 3e5b37f22cd7ba2c81b1ac69d55ffae7ea09423f Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Sun, 13 Jan 2019 21:03:26 -0800 Subject: [PATCH 8/9] Fix #6102 - Intense CPU utilization on page change (#6542) * Fix #6102 - Intense CPU utilization on page change The issue here was that every time a Razor Page changed, we would subscribe an additional time to the endpoint change notifications. This means that if you tweaked a page 30 times, we would update the address table 31 times when you save the file. If you were doing a lot of editing then this would grow to a really large amount of computation. The fix is to use DataSourceDependentCache, which is an existing utility type we developed for this purpose. I'm not sure why it wasn't being used for this already. We're already using DataSourceDependentCache in a bunch of other places, and it's well tested. I also tweaked the stucture of this code to be more similar to EndpointNameAddressScheme. This involved some test changes that all seemed like good cleanup. The way this was being tested was a little wonky. (cherry picked from commit a5658a8c95c4f8868e7e6db54303f278d34efe87) --- .../Routing/src/DataSourceDependentCache.cs | 37 +++++- src/Http/Routing/src/DefaultLinkGenerator.cs | 7 +- .../RoutingServiceCollectionExtensions.cs | 2 +- .../Routing/src/EndpointNameAddressScheme.cs | 9 +- .../Matching/DataSourceDependentMatcher.cs | 46 ++++++- .../Routing/src/Matching/DfaMatcherFactory.cs | 8 +- .../Routing/src/RouteValuesAddressScheme.cs | 125 +++++++++--------- .../UnitTests/DataSourceDependentCacheTest.cs | 47 ++++++- .../DataSourceDependentMatcherTest.cs | 68 +++++----- .../UnitTests/RouteValuesAddressSchemeTest.cs | 76 +++++------ 10 files changed, 275 insertions(+), 150 deletions(-) diff --git a/src/Http/Routing/src/DataSourceDependentCache.cs b/src/Http/Routing/src/DataSourceDependentCache.cs index 4daf256327..2f08da69cb 100644 --- a/src/Http/Routing/src/DataSourceDependentCache.cs +++ b/src/Http/Routing/src/DataSourceDependentCache.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing { - internal class DataSourceDependentCache where T : class + internal sealed class DataSourceDependentCache : IDisposable where T : class { private readonly EndpointDataSource _dataSource; private readonly Func, T> _initializeCore; @@ -19,6 +19,9 @@ namespace Microsoft.AspNetCore.Routing private bool _initialized; private T _value; + private IDisposable _disposable; + private bool _disposed; + public DataSourceDependentCache(EndpointDataSource dataSource, Func, T> initialize) { if (dataSource == null) @@ -26,6 +29,11 @@ namespace Microsoft.AspNetCore.Routing throw new ArgumentNullException(nameof(dataSource)); } + if (initialize == null) + { + throw new ArgumentNullException(nameof(initialize)); + } + _dataSource = dataSource; _initializeCore = initialize; @@ -51,9 +59,32 @@ namespace Microsoft.AspNetCore.Routing var changeToken = _dataSource.GetChangeToken(); _value = _initializeCore(_dataSource.Endpoints); - changeToken.RegisterChangeCallback(_initializerWithState, null); + // Don't resubscribe if we're already disposed. + if (_disposed) + { + return _value; + } + + _disposable = changeToken.RegisterChangeCallback(_initializerWithState, null); return _value; } } + + public void Dispose() + { + lock (_lock) + { + if (!_disposed) + { + _disposable?.Dispose(); + _disposable = null; + + // Tracking whether we're disposed or not prevents a race-condition + // between disposal and Initialize(). If a change callback fires after + // we dispose, then we don't want to reregister. + _disposed = true; + } + } + } } } diff --git a/src/Http/Routing/src/DefaultLinkGenerator.cs b/src/Http/Routing/src/DefaultLinkGenerator.cs index 9b9f040cd2..361dd5bd93 100644 --- a/src/Http/Routing/src/DefaultLinkGenerator.cs +++ b/src/Http/Routing/src/DefaultLinkGenerator.cs @@ -19,7 +19,7 @@ using Microsoft.Extensions.Options; namespace Microsoft.AspNetCore.Routing { - internal sealed class DefaultLinkGenerator : LinkGenerator + internal sealed class DefaultLinkGenerator : LinkGenerator, IDisposable { private readonly ParameterPolicyFactory _parameterPolicyFactory; private readonly ObjectPool _uriBuildingContextPool; @@ -364,6 +364,11 @@ namespace Microsoft.AspNetCore.Routing return httpContext?.Features.Get()?.RouteValues; } + public void Dispose() + { + _cache.Dispose(); + } + private static class Log { public static class EventIds diff --git a/src/Http/Routing/src/DependencyInjection/RoutingServiceCollectionExtensions.cs b/src/Http/Routing/src/DependencyInjection/RoutingServiceCollectionExtensions.cs index 1fa562966c..ef3df42bd5 100644 --- a/src/Http/Routing/src/DependencyInjection/RoutingServiceCollectionExtensions.cs +++ b/src/Http/Routing/src/DependencyInjection/RoutingServiceCollectionExtensions.cs @@ -66,6 +66,7 @@ namespace Microsoft.Extensions.DependencyInjection services.TryAddSingleton(); services.TryAddTransient(); services.TryAddSingleton(); + services.TryAddTransient(); // Link generation related services services.TryAddSingleton(); @@ -77,7 +78,6 @@ namespace Microsoft.Extensions.DependencyInjection // services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Singleton()); - return services; } diff --git a/src/Http/Routing/src/EndpointNameAddressScheme.cs b/src/Http/Routing/src/EndpointNameAddressScheme.cs index 2716de36e8..26c3c2322a 100644 --- a/src/Http/Routing/src/EndpointNameAddressScheme.cs +++ b/src/Http/Routing/src/EndpointNameAddressScheme.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing { - internal class EndpointNameAddressScheme : IEndpointAddressScheme + internal sealed class EndpointNameAddressScheme : IEndpointAddressScheme, IDisposable { private readonly DataSourceDependentCache> _cache; @@ -103,5 +103,10 @@ namespace Microsoft.AspNetCore.Routing return endpoint.Metadata.GetMetadata()?.EndpointName; } } + + public void Dispose() + { + _cache.Dispose(); + } } } diff --git a/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs b/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs index 89c11090ba..4a796b954c 100644 --- a/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs +++ b/src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs @@ -1,27 +1,31 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Features; namespace Microsoft.AspNetCore.Routing.Matching { - internal class DataSourceDependentMatcher : Matcher + internal sealed class DataSourceDependentMatcher : Matcher { private readonly Func _matcherBuilderFactory; private readonly DataSourceDependentCache _cache; public DataSourceDependentMatcher( EndpointDataSource dataSource, + Lifetime lifetime, Func matcherBuilderFactory) { _matcherBuilderFactory = matcherBuilderFactory; _cache = new DataSourceDependentCache(dataSource, CreateMatcher); _cache.EnsureInitialized(); + + // This will Dispose the cache when the lifetime is disposed, this allows + // the service provider to manage the lifetime of the cache. + lifetime.Cache = _cache; } // Used in tests @@ -48,5 +52,41 @@ namespace Microsoft.AspNetCore.Routing.Matching return builder.Build(); } + + // Used to tie the lifetime of a DataSourceDependentCache to the service provider + public sealed class Lifetime : IDisposable + { + private readonly object _lock = new object(); + private DataSourceDependentCache _cache; + private bool _disposed; + + public DataSourceDependentCache Cache + { + get => _cache; + set + { + lock (_lock) + { + if (_disposed) + { + value?.Dispose(); + } + + _cache = value; + } + } + } + + public void Dispose() + { + lock (_lock) + { + _cache?.Dispose(); + _cache = null; + + _disposed = true; + } + } + } } } diff --git a/src/Http/Routing/src/Matching/DfaMatcherFactory.cs b/src/Http/Routing/src/Matching/DfaMatcherFactory.cs index c4b932d3df..9fa684d944 100644 --- a/src/Http/Routing/src/Matching/DfaMatcherFactory.cs +++ b/src/Http/Routing/src/Matching/DfaMatcherFactory.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -29,7 +29,11 @@ namespace Microsoft.AspNetCore.Routing.Matching throw new ArgumentNullException(nameof(dataSource)); } - return new DataSourceDependentMatcher(dataSource, () => + // Creates a tracking entry in DI to stop listening for change events + // when the services are disposed. + var lifetime = _services.GetRequiredService(); + + return new DataSourceDependentMatcher(dataSource, lifetime, () => { return _services.GetRequiredService(); }); diff --git a/src/Http/Routing/src/RouteValuesAddressScheme.cs b/src/Http/Routing/src/RouteValuesAddressScheme.cs index ae7bd66705..cb2a44f23e 100644 --- a/src/Http/Routing/src/RouteValuesAddressScheme.cs +++ b/src/Http/Routing/src/RouteValuesAddressScheme.cs @@ -1,46 +1,44 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; -using System.Linq; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing.Internal; using Microsoft.AspNetCore.Routing.Template; using Microsoft.AspNetCore.Routing.Tree; -using Microsoft.Extensions.Primitives; namespace Microsoft.AspNetCore.Routing { - internal class RouteValuesAddressScheme : IEndpointAddressScheme + internal sealed class RouteValuesAddressScheme : IEndpointAddressScheme, IDisposable { - private readonly CompositeEndpointDataSource _dataSource; - private LinkGenerationDecisionTree _allMatchesLinkGenerationTree; - private Dictionary> _namedMatchResults; + private readonly DataSourceDependentCache _cache; public RouteValuesAddressScheme(CompositeEndpointDataSource dataSource) { - _dataSource = dataSource; - - // Build initial matches - BuildOutboundMatches(); - - // Register for changes in endpoints - ChangeToken.OnChange( - _dataSource.GetChangeToken, - HandleChange); + _cache = new DataSourceDependentCache(dataSource, Initialize); } + // Internal for tests + internal StateEntry State => _cache.EnsureInitialized(); + public IEnumerable FindEndpoints(RouteValuesAddress address) { + if (address == null) + { + throw new ArgumentNullException(nameof(address)); + } + + var state = State; + IList matchResults = null; if (string.IsNullOrEmpty(address.RouteName)) { - matchResults = _allMatchesLinkGenerationTree.GetMatches( + matchResults = state.AllMatchesLinkGenerationTree.GetMatches( address.ExplicitValues, address.AmbientValues); } - else if (_namedMatchResults.TryGetValue(address.RouteName, out var namedMatchResults)) + else if (state.NamedMatches.TryGetValue(address.RouteName, out var namedMatchResults)) { matchResults = namedMatchResults; } @@ -74,52 +72,31 @@ namespace Microsoft.AspNetCore.Routing } } - private void HandleChange() - { - // rebuild the matches - BuildOutboundMatches(); - - // re-register the callback as the change token is one time use only and a new change token - // is produced every time - ChangeToken.OnChange( - _dataSource.GetChangeToken, - HandleChange); - } - - private void BuildOutboundMatches() - { - // Refresh the matches in the case where a datasource's endpoints changes. The following is OK to do - // as refresh of new endpoints happens within a lock and also these fields are not publicly accessible. - var (allMatches, namedMatchResults) = GetOutboundMatches(); - _namedMatchResults = namedMatchResults; - _allMatchesLinkGenerationTree = new LinkGenerationDecisionTree(allMatches); - } - - /// Decision tree is built using the 'required values' of actions. - /// - When generating a url using route values, decision tree checks the explicitly supplied route values + - /// ambient values to see if they have a match for the required-values-based-tree. - /// - When generating a url using route name, route values for controller, action etc.might not be provided - /// (this is expected because as a user I want to avoid writing all those and instead chose to use a - /// routename which is quick). So since these values are not provided and might not be even in ambient - /// values, decision tree would fail to find a match. So for this reason decision tree is not used for named - /// matches. Instead all named matches are returned as is and the LinkGenerator uses a TemplateBinder to - /// decide which of the matches can generate a url. - /// For example, for a route defined like below with current ambient values like new { controller = "Home", - /// action = "Index" } - /// "api/orders/{id}", - /// routeName: "OrdersApi", - /// defaults: new { controller = "Orders", action = "GetById" }, - /// requiredValues: new { controller = "Orders", action = "GetById" }, - /// A call to GetLink("OrdersApi", new { id = "10" }) cannot generate url as neither the supplied values or - /// current ambient values do not satisfy the decision tree that is built based on the required values. - protected virtual (List, Dictionary>) GetOutboundMatches() + private StateEntry Initialize(IReadOnlyList endpoints) { var allOutboundMatches = new List(); - var namedOutboundMatchResults = new Dictionary>( - StringComparer.OrdinalIgnoreCase); + var namedOutboundMatchResults = new Dictionary>(StringComparer.OrdinalIgnoreCase); - foreach (var endpoint in _dataSource.Endpoints) + // Decision tree is built using the 'required values' of actions. + // - When generating a url using route values, decision tree checks the explicitly supplied route values + + // ambient values to see if they have a match for the required-values-based-tree. + // - When generating a url using route name, route values for controller, action etc.might not be provided + // (this is expected because as a user I want to avoid writing all those and instead chose to use a + // routename which is quick). So since these values are not provided and might not be even in ambient + // values, decision tree would fail to find a match. So for this reason decision tree is not used for named + // matches. Instead all named matches are returned as is and the LinkGenerator uses a TemplateBinder to + // decide which of the matches can generate a url. + // For example, for a route defined like below with current ambient values like new { controller = "Home", + // action = "Index" } + // "api/orders/{id}", + // routeName: "OrdersApi", + // defaults: new { controller = "Orders", action = "GetById" }, + // requiredValues: new { controller = "Orders", action = "GetById" }, + // A call to GetLink("OrdersApi", new { id = "10" }) cannot generate url as neither the supplied values or + // current ambient values do not satisfy the decision tree that is built based on the required values. + for (var i = 0; i < endpoints.Count; i++) { + var endpoint = endpoints[i]; if (!(endpoint is RouteEndpoint routeEndpoint)) { continue; @@ -148,7 +125,10 @@ namespace Microsoft.AspNetCore.Routing matchResults.Add(new OutboundMatchResult(outboundMatch, isFallbackMatch: false)); } - return (allOutboundMatches, namedOutboundMatchResults); + return new StateEntry( + allOutboundMatches, + new LinkGenerationDecisionTree(allOutboundMatches), + namedOutboundMatchResults); } private OutboundRouteEntry CreateOutboundRouteEntry(RouteEndpoint endpoint) @@ -167,5 +147,28 @@ namespace Microsoft.AspNetCore.Routing entry.Defaults = new RouteValueDictionary(endpoint.RoutePattern.Defaults); return entry; } + + public void Dispose() + { + _cache.Dispose(); + } + + internal class StateEntry + { + // For testing + public readonly List AllMatches; + public readonly LinkGenerationDecisionTree AllMatchesLinkGenerationTree; + public readonly Dictionary> NamedMatches; + + public StateEntry( + List allMatches, + LinkGenerationDecisionTree allMatchesLinkGenerationTree, + Dictionary> namedMatches) + { + AllMatches = allMatches; + AllMatchesLinkGenerationTree = allMatchesLinkGenerationTree; + NamedMatches = namedMatches; + } + } } } diff --git a/src/Http/Routing/test/UnitTests/DataSourceDependentCacheTest.cs b/src/Http/Routing/test/UnitTests/DataSourceDependentCacheTest.cs index 33da589661..3fd4c75191 100644 --- a/src/Http/Routing/test/UnitTests/DataSourceDependentCacheTest.cs +++ b/src/Http/Routing/test/UnitTests/DataSourceDependentCacheTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -76,5 +76,50 @@ namespace Microsoft.AspNetCore.Routing Assert.Equal(2, count); Assert.Equal("hello, 2!", cache.Value); } + + [Fact] + public void Cache_CanDispose_WhenUninitialized() + { + // Arrange + var count = 0; + + var dataSource = new DynamicEndpointDataSource(); + var cache = new DataSourceDependentCache(dataSource, (endpoints) => + { + count++; + return $"hello, {count}!"; + }); + + // Act + cache.Dispose(); + + // Assert + dataSource.AddEndpoint(null); + Assert.Null(cache.Value); + } + + [Fact] + public void Cache_CanDispose_WhenInitialized() + { + // Arrange + var count = 0; + + var dataSource = new DynamicEndpointDataSource(); + var cache = new DataSourceDependentCache(dataSource, (endpoints) => + { + count++; + return $"hello, {count}!"; + }); + + cache.EnsureInitialized(); + Assert.Equal("hello, 1!", cache.Value); + + // Act + cache.Dispose(); + + // Assert + dataSource.AddEndpoint(null); + Assert.Equal("hello, 1!", cache.Value); // Ignores update + } } } diff --git a/src/Http/Routing/test/UnitTests/Matching/DataSourceDependentMatcherTest.cs b/src/Http/Routing/test/UnitTests/Matching/DataSourceDependentMatcherTest.cs index 3559dd529b..da46b300ef 100644 --- a/src/Http/Routing/test/UnitTests/Matching/DataSourceDependentMatcherTest.cs +++ b/src/Http/Routing/test/UnitTests/Matching/DataSourceDependentMatcherTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -18,13 +18,16 @@ namespace Microsoft.AspNetCore.Routing.Matching { // Arrange var dataSource = new DynamicEndpointDataSource(); + var lifetime = new DataSourceDependentMatcher.Lifetime(); // Act - var matcher = new DataSourceDependentMatcher(dataSource, TestMatcherBuilder.Create); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); // Assert var inner = Assert.IsType(matcher.CurrentMatcher); Assert.Empty(inner.Endpoints); + + Assert.NotNull(lifetime.Cache); } [Fact] @@ -32,7 +35,8 @@ namespace Microsoft.AspNetCore.Routing.Matching { // Arrange var dataSource = new DynamicEndpointDataSource(); - var matcher = new DataSourceDependentMatcher(dataSource, TestMatcherBuilder.Create); + var lifetime = new DataSourceDependentMatcher.Lifetime(); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); var endpoint = new RouteEndpoint( TestConstants.EmptyRequestDelegate, @@ -51,16 +55,42 @@ namespace Microsoft.AspNetCore.Routing.Matching e => Assert.Same(endpoint, e)); } + [Fact] + public void Matcher_IgnoresUpdate_WhenDisposed() + { + // Arrange + var dataSource = new DynamicEndpointDataSource(); + var lifetime = new DataSourceDependentMatcher.Lifetime(); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); + + var endpoint = new RouteEndpoint( + TestConstants.EmptyRequestDelegate, + RoutePatternFactory.Parse("a/b/c"), + 0, + EndpointMetadataCollection.Empty, + "test"); + + lifetime.Dispose(); + + // Act + dataSource.AddEndpoint(endpoint); + + // Assert + var inner = Assert.IsType(matcher.CurrentMatcher); + Assert.Empty(inner.Endpoints); + } + [Fact] public void Matcher_Ignores_NonRouteEndpoint() { // Arrange var dataSource = new DynamicEndpointDataSource(); + var lifetime = new DataSourceDependentMatcher.Lifetime(); var endpoint = new Endpoint(TestConstants.EmptyRequestDelegate, EndpointMetadataCollection.Empty, "test"); dataSource.AddEndpoint(endpoint); // Act - var matcher = new DataSourceDependentMatcher(dataSource, TestMatcherBuilder.Create); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); // Assert var inner = Assert.IsType(matcher.CurrentMatcher); @@ -72,6 +102,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { // Arrange var dataSource = new DynamicEndpointDataSource(); + var lifetime = new DataSourceDependentMatcher.Lifetime(); var endpoint = new RouteEndpoint( TestConstants.EmptyRequestDelegate, RoutePatternFactory.Parse("/"), @@ -81,7 +112,7 @@ namespace Microsoft.AspNetCore.Routing.Matching dataSource.AddEndpoint(endpoint); // Act - var matcher = new DataSourceDependentMatcher(dataSource, TestMatcherBuilder.Create); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); // Assert var inner = Assert.IsType(matcher.CurrentMatcher); @@ -93,6 +124,7 @@ namespace Microsoft.AspNetCore.Routing.Matching { // Arrange var dataSource = new DynamicEndpointDataSource(); + var lifetime = new DataSourceDependentMatcher.Lifetime(); var endpoint = new RouteEndpoint( TestConstants.EmptyRequestDelegate, RoutePatternFactory.Parse("/"), @@ -102,37 +134,13 @@ namespace Microsoft.AspNetCore.Routing.Matching dataSource.AddEndpoint(endpoint); // Act - var matcher = new DataSourceDependentMatcher(dataSource, TestMatcherBuilder.Create); + var matcher = new DataSourceDependentMatcher(dataSource, lifetime, TestMatcherBuilder.Create); // Assert var inner = Assert.IsType(matcher.CurrentMatcher); Assert.Same(endpoint, Assert.Single(inner.Endpoints)); } - [Fact] - public void Cache_Reinitializes_WhenDataSourceChanges() - { - // Arrange - var count = 0; - - var dataSource = new DynamicEndpointDataSource(); - var cache = new DataSourceDependentCache(dataSource, (endpoints) => - { - count++; - return $"hello, {count}!"; - }); - - cache.EnsureInitialized(); - Assert.Equal("hello, 1!", cache.Value); - - // Act - dataSource.AddEndpoint(null); - - // Assert - Assert.Equal(2, count); - Assert.Equal("hello, 2!", cache.Value); - } - private class TestMatcherBuilder : MatcherBuilder { public static Func Create = () => new TestMatcherBuilder(); diff --git a/src/Http/Routing/test/UnitTests/RouteValuesAddressSchemeTest.cs b/src/Http/Routing/test/UnitTests/RouteValuesAddressSchemeTest.cs index fc92eeab27..b6443cd3dd 100644 --- a/src/Http/Routing/test/UnitTests/RouteValuesAddressSchemeTest.cs +++ b/src/Http/Routing/test/UnitTests/RouteValuesAddressSchemeTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; @@ -25,10 +25,10 @@ namespace Microsoft.AspNetCore.Routing var addressScheme = CreateAddressScheme(endpoint1, endpoint2); // Assert - Assert.NotNull(addressScheme.AllMatches); - Assert.Equal(2, addressScheme.AllMatches.Count()); - Assert.NotNull(addressScheme.NamedMatches); - Assert.True(addressScheme.NamedMatches.TryGetValue("named", out var namedMatches)); + Assert.NotNull(addressScheme.State.AllMatches); + Assert.Equal(2, addressScheme.State.AllMatches.Count()); + Assert.NotNull(addressScheme.State.NamedMatches); + Assert.True(addressScheme.State.NamedMatches.TryGetValue("named", out var namedMatches)); var namedMatch = Assert.Single(namedMatches); var actual = Assert.IsType(namedMatch.Match.Entry.Data); Assert.Same(endpoint2, actual); @@ -46,10 +46,10 @@ namespace Microsoft.AspNetCore.Routing var addressScheme = CreateAddressScheme(endpoint1, endpoint2, endpoint3); // Assert - Assert.NotNull(addressScheme.AllMatches); - Assert.Equal(3, addressScheme.AllMatches.Count()); - Assert.NotNull(addressScheme.NamedMatches); - Assert.True(addressScheme.NamedMatches.TryGetValue("named", out var namedMatches)); + Assert.NotNull(addressScheme.State.AllMatches); + Assert.Equal(3, addressScheme.State.AllMatches.Count()); + Assert.NotNull(addressScheme.State.NamedMatches); + Assert.True(addressScheme.State.NamedMatches.TryGetValue("named", out var namedMatches)); Assert.Equal(2, namedMatches.Count); Assert.Same(endpoint2, Assert.IsType(namedMatches[0].Match.Entry.Data)); Assert.Same(endpoint3, Assert.IsType(namedMatches[1].Match.Entry.Data)); @@ -67,10 +67,10 @@ namespace Microsoft.AspNetCore.Routing var addressScheme = CreateAddressScheme(endpoint1, endpoint2, endpoint3); // Assert - Assert.NotNull(addressScheme.AllMatches); - Assert.Equal(3, addressScheme.AllMatches.Count()); - Assert.NotNull(addressScheme.NamedMatches); - Assert.True(addressScheme.NamedMatches.TryGetValue("named", out var namedMatches)); + Assert.NotNull(addressScheme.State.AllMatches); + Assert.Equal(3, addressScheme.State.AllMatches.Count()); + Assert.NotNull(addressScheme.State.NamedMatches); + Assert.True(addressScheme.State.NamedMatches.TryGetValue("named", out var namedMatches)); Assert.Equal(2, namedMatches.Count); Assert.Same(endpoint2, Assert.IsType(namedMatches[0].Match.Entry.Data)); Assert.Same(endpoint3, Assert.IsType(namedMatches[1].Match.Entry.Data)); @@ -84,11 +84,12 @@ namespace Microsoft.AspNetCore.Routing var dynamicDataSource = new DynamicEndpointDataSource(new[] { endpoint1 }); // Act 1 - var addressScheme = new CustomRouteValuesBasedAddressScheme(new CompositeEndpointDataSource(new[] { dynamicDataSource })); + var addressScheme = new RouteValuesAddressScheme(new CompositeEndpointDataSource(new[] { dynamicDataSource })); // Assert 1 - Assert.NotNull(addressScheme.AllMatches); - var match = Assert.Single(addressScheme.AllMatches); + var state = addressScheme.State; + Assert.NotNull(state.AllMatches); + var match = Assert.Single(state.AllMatches); var actual = Assert.IsType(match.Entry.Data); Assert.Same(endpoint1, actual); @@ -102,21 +103,24 @@ namespace Microsoft.AspNetCore.Routing // Arrange 2 var endpoint3 = CreateEndpoint("/c"); - // Act 2 + // Act 3 // Trigger change dynamicDataSource.AddEndpoint(endpoint3); // Arrange 3 var endpoint4 = CreateEndpoint("/d"); - // Act 3 + // Act 4 // Trigger change dynamicDataSource.AddEndpoint(endpoint4); - // Assert 3 - Assert.NotNull(addressScheme.AllMatches); + // Assert 4 + Assert.NotSame(state, addressScheme.State); + state = addressScheme.State; + + Assert.NotNull(state.AllMatches); Assert.Collection( - addressScheme.AllMatches, + state.AllMatches, (m) => { actual = Assert.IsType(m.Entry.Data); @@ -293,7 +297,7 @@ namespace Microsoft.AspNetCore.Routing var addressScheme = CreateAddressScheme(endpoint); // Assert - Assert.Empty(addressScheme.AllMatches); + Assert.Empty(addressScheme.State.AllMatches); } [Fact] @@ -308,17 +312,17 @@ namespace Microsoft.AspNetCore.Routing var addressScheme = CreateAddressScheme(endpoint); // Assert - Assert.Same(endpoint, Assert.Single(addressScheme.AllMatches).Entry.Data); + Assert.Same(endpoint, Assert.Single(addressScheme.State.AllMatches).Entry.Data); } - private CustomRouteValuesBasedAddressScheme CreateAddressScheme(params Endpoint[] endpoints) + private RouteValuesAddressScheme CreateAddressScheme(params Endpoint[] endpoints) { return CreateAddressScheme(new DefaultEndpointDataSource(endpoints)); } - private CustomRouteValuesBasedAddressScheme CreateAddressScheme(params EndpointDataSource[] dataSources) + private RouteValuesAddressScheme CreateAddressScheme(params EndpointDataSource[] dataSources) { - return new CustomRouteValuesBasedAddressScheme(new CompositeEndpointDataSource(dataSources)); + return new RouteValuesAddressScheme(new CompositeEndpointDataSource(dataSources)); } private RouteEndpoint CreateEndpoint( @@ -347,26 +351,6 @@ namespace Microsoft.AspNetCore.Routing null); } - private class CustomRouteValuesBasedAddressScheme : RouteValuesAddressScheme - { - public CustomRouteValuesBasedAddressScheme(CompositeEndpointDataSource dataSource) - : base(dataSource) - { - } - - public IEnumerable AllMatches { get; private set; } - - public IDictionary> NamedMatches { get; private set; } - - protected override (List, Dictionary>) GetOutboundMatches() - { - var matches = base.GetOutboundMatches(); - AllMatches = matches.Item1; - NamedMatches = matches.Item2; - return matches; - } - } - private class EncourageLinkGenerationMetadata : ISuppressLinkGenerationMetadata { public bool SuppressLinkGeneration => false; From 959445b271b04de48200a676fc6b66d8670647dc Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Tue, 15 Jan 2019 22:29:08 -0800 Subject: [PATCH 9/9] Target netcoreapp2.2 --- .../samples/ClaimsTransformation/ClaimsTransformation.csproj | 2 +- src/Security/samples/Cookies/Cookies.csproj | 2 +- src/Security/samples/DynamicSchemes/DynamicSchemes.csproj | 2 +- .../Identity.ExternalClaims/Identity.ExternalClaims.csproj | 2 +- .../samples/PathSchemeSelection/PathSchemeSelection.csproj | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj b/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj index feee8fa210..37c3ac2dfe 100644 --- a/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj +++ b/src/Security/samples/ClaimsTransformation/ClaimsTransformation.csproj @@ -1,7 +1,7 @@  - netcoreapp2.1 + netcoreapp2.2 true diff --git a/src/Security/samples/Cookies/Cookies.csproj b/src/Security/samples/Cookies/Cookies.csproj index feee8fa210..37c3ac2dfe 100644 --- a/src/Security/samples/Cookies/Cookies.csproj +++ b/src/Security/samples/Cookies/Cookies.csproj @@ -1,7 +1,7 @@  - netcoreapp2.1 + netcoreapp2.2 true diff --git a/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj b/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj index 1f8300e50f..6301e2deba 100644 --- a/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj +++ b/src/Security/samples/DynamicSchemes/DynamicSchemes.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1;net461 + netcoreapp2.2;net461 true diff --git a/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj index 4261bf290f..23f3f0a95c 100644 --- a/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj +++ b/src/Security/samples/Identity.ExternalClaims/Identity.ExternalClaims.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1;net461 + netcoreapp2.2;net461 aspnet-Identity.ExternalClaims-E95BE154-CB1B-4633-A2E0-B2DF12FE8BD3 true diff --git a/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj b/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj index feee8fa210..37c3ac2dfe 100644 --- a/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj +++ b/src/Security/samples/PathSchemeSelection/PathSchemeSelection.csproj @@ -1,7 +1,7 @@  - netcoreapp2.1 + netcoreapp2.2 true