├── .editorconfig ├── .gitignore ├── ApiProjectTemplates.sln ├── Directory.Build.props ├── Directory.Packages.props ├── LICENSE ├── README.md ├── api_templates ├── APIProjectTests │ ├── APIEndpointsProjectTests.csproj │ ├── ControllerUnitTests.cs │ ├── Endpoints │ │ ├── Delete_Endpoint.cs │ │ ├── GetById_Endpoint.cs │ │ ├── GetById_EndpointAllInOne.cs │ │ ├── JsonOptionConstants.cs │ │ ├── List_Endpoint.cs │ │ └── Routes.cs │ ├── Swagger.cs │ ├── WebApiApplication.cs │ ├── XUnitLogger.cs │ ├── XUnitLoggerProvider.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── ApiBestPractices.Endpoints │ ├── ApiBestPractices.Endpoints.csproj │ ├── ApiBestPractices.Endpoints.xml │ ├── AuthExtensions.cs │ ├── AutoMapping.cs │ ├── DataConsistencyWorker.cs │ ├── Endpoints │ │ ├── Account │ │ │ ├── Login.LoginUserCommand.cs │ │ │ ├── Login.TokenResponse.cs │ │ │ ├── Login.cs │ │ │ ├── Register.RegisterUserCommand.cs │ │ │ └── Register.cs │ │ └── Authors │ │ │ ├── Create.CreateAuthorCommand.cs │ │ │ ├── Create.CreatedAuthorResult.cs │ │ │ ├── Create.cs │ │ │ ├── Delete.cs │ │ │ ├── Get.AuthorDto.cs │ │ │ ├── Get.cs │ │ │ ├── List.AuthorListResult.cs │ │ │ ├── List.cs │ │ │ ├── Patch.PatchAuthorCommand.cs │ │ │ ├── Patch.PatchedAuthorResult.cs │ │ │ ├── Patch.cs │ │ │ ├── Update.UpdateAuthorCommand.cs │ │ │ ├── Update.UpdatedAuthorResult.cs │ │ │ └── Update.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── appsettings.Development.json │ ├── appsettings.Testing.json │ └── appsettings.json ├── BackendData │ ├── BackendData.csproj │ ├── DataAccess │ │ ├── AppDbContext.cs │ │ ├── Config │ │ │ ├── AuthorConfig.cs │ │ │ ├── ConfigConstants.cs │ │ │ └── UserConfig.cs │ │ ├── EfRepository.cs │ │ └── SeedData.cs │ ├── DomainModel │ │ ├── Author.cs │ │ ├── BaseEntity.cs │ │ ├── IAsyncRepository.cs │ │ ├── TwitterHelpers.cs │ │ └── User.cs │ ├── Migrations │ │ ├── 20220717191514_AddUsers.Designer.cs │ │ ├── 20220717191514_AddUsers.cs │ │ └── AppDbContextModelSnapshot.cs │ ├── Security │ │ ├── AccessToken.cs │ │ ├── IPasswordHasher.cs │ │ ├── ITokenFactory.cs │ │ ├── JsonWebToken.cs │ │ ├── PasswordHasher.cs │ │ ├── SigningConfigurations.cs │ │ ├── TokenFactory.cs │ │ └── TokenOptions.cs │ ├── Services │ │ ├── AuthenticationService.cs │ │ └── IAuthenticationService.cs │ └── database.sqlite ├── controllers │ ├── ApiModels │ │ ├── AuthorDto.cs │ │ └── BookDto.cs │ ├── Controllers │ │ ├── AuthorsController.cs │ │ ├── AuthorsUsingMediatrController.cs │ │ ├── AuthorsUsingMediatrFromBaseController.cs │ │ ├── AuthorsUsingServiceController.cs │ │ ├── DemoController.cs │ │ └── HomeController.cs │ ├── Handlers │ │ └── CreateAuthorHandler.cs │ ├── Interfaces │ │ └── IAuthorService.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ └── AuthorService.cs │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── controllers.csproj │ ├── database.sqlite-shm │ └── database.sqlite-wal ├── fastendpoints │ ├── Authors │ │ └── Create.cs │ ├── FastEndpointsAPI.csproj │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── appsettings.Development.json │ └── appsettings.json └── minimal │ ├── .vscode │ ├── launch.json │ └── tasks.json │ ├── AuthorDto.cs │ ├── Authors │ ├── Create.cs │ └── UpdateAuthorExtension.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── appsettings.Development.json │ ├── appsettings.json │ └── minimal.csproj ├── demos.zip ├── demos2022.zip └── securing_apis ├── Imperative ├── Imperative.sln └── OwnerPermissions │ ├── Controllers │ └── DocumentController.cs │ ├── Data │ ├── DocumentRepository.cs │ └── IDocumentRepository.cs │ ├── Models │ └── Document.cs │ ├── OwnerPermissions.csproj │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Services │ ├── DocumentAuthorizationCrudHandler.cs │ ├── DocumentAuthorizationHandler.cs │ ├── Operations.cs │ └── SameAuthorRequirement.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── JsBffSample ├── BackendApiHost │ ├── BackendApiHost.csproj │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ └── ToDoController.cs ├── FrontendHost │ ├── FrontendHost.csproj │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── ToDoController.cs │ └── wwwroot │ │ ├── StyleSheet.css │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── libs │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.min.css │ │ ├── bootstrap.min.css.map │ │ └── jquery-3.6.0.min.js │ │ ├── session.js │ │ └── todo.js └── JsBffSample.sln └── jwtapi ├── AuthExtensions.cs ├── Controllers ├── LoginController.cs ├── ProtectedController.cs ├── Resources │ ├── RefreshTokenResource.cs │ ├── RevokeTokenResource.cs │ ├── TokenResource.cs │ ├── UserCredentialsResource.cs │ └── UserResource.cs └── UsersController.cs ├── Core ├── Models │ ├── ApplicationRole.cs │ ├── Role.cs │ ├── User.cs │ └── UserRole.cs ├── Repositories │ ├── IUnitOfWork.cs │ └── IUserRepository.cs ├── Security │ ├── Hashing │ │ └── IPasswordHasher.cs │ └── Tokens │ │ ├── AccessToken.cs │ │ ├── ITokenHandler.cs │ │ ├── JsonWebToken.cs │ │ └── RefreshToken.cs └── Services │ ├── Communication │ ├── BaseResponse.cs │ ├── CreateUserResponse.cs │ └── TokenResponse.cs │ ├── IAuthenticationService.cs │ └── IUserService.cs ├── Extensions └── MiddlewareExtensions.cs ├── JWTAPI.csproj ├── JWTAPI.sln ├── Mapping ├── ModelToResourceProfile.cs └── ResourceToModelProfile.cs ├── Persistence ├── AppDbContext.cs ├── DatabaseSeed.cs ├── UnitOfWork.cs └── UserRepository.cs ├── Program.cs ├── Properties └── launchSettings.json ├── Security ├── Hashing │ └── PasswordHasher.cs └── Tokens │ ├── SigningConfigurations.cs │ ├── TokenHandler.cs │ └── TokenOptions.cs ├── Services ├── AuthenticationService.cs └── UserService.cs ├── Startup.cs ├── appsettings.Development.json └── appsettings.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/.gitignore -------------------------------------------------------------------------------- /ApiProjectTemplates.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/ApiProjectTemplates.sln -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/Directory.Build.props -------------------------------------------------------------------------------- /Directory.Packages.props: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/Directory.Packages.props -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/README.md -------------------------------------------------------------------------------- /api_templates/APIProjectTests/APIEndpointsProjectTests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/APIEndpointsProjectTests.csproj -------------------------------------------------------------------------------- /api_templates/APIProjectTests/ControllerUnitTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/ControllerUnitTests.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/Delete_Endpoint.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/Delete_Endpoint.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/GetById_Endpoint.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/GetById_Endpoint.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/GetById_EndpointAllInOne.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/GetById_EndpointAllInOne.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/JsonOptionConstants.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/JsonOptionConstants.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/List_Endpoint.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/List_Endpoint.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Endpoints/Routes.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Endpoints/Routes.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/Swagger.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/Swagger.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/WebApiApplication.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/WebApiApplication.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/XUnitLogger.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/XUnitLogger.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/XUnitLoggerProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/XUnitLoggerProvider.cs -------------------------------------------------------------------------------- /api_templates/APIProjectTests/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/appsettings.Development.json -------------------------------------------------------------------------------- /api_templates/APIProjectTests/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/APIProjectTests/appsettings.json -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/ApiBestPractices.Endpoints.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/ApiBestPractices.Endpoints.csproj -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/ApiBestPractices.Endpoints.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/ApiBestPractices.Endpoints.xml -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/AuthExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/AuthExtensions.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/AutoMapping.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/AutoMapping.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/DataConsistencyWorker.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/DataConsistencyWorker.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.LoginUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.LoginUserCommand.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.TokenResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.TokenResponse.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Login.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Register.RegisterUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Register.RegisterUserCommand.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Register.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Account/Register.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.CreateAuthorCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.CreateAuthorCommand.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.CreatedAuthorResult.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.CreatedAuthorResult.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Create.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Delete.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Delete.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Get.AuthorDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Get.AuthorDto.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Get.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Get.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/List.AuthorListResult.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/List.AuthorListResult.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/List.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/List.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.PatchAuthorCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.PatchAuthorCommand.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.PatchedAuthorResult.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.PatchedAuthorResult.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Patch.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.UpdateAuthorCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.UpdateAuthorCommand.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.UpdatedAuthorResult.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.UpdatedAuthorResult.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Endpoints/Authors/Update.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Program.cs -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/Properties/launchSettings.json -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/appsettings.Development.json -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/appsettings.Testing.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/appsettings.Testing.json -------------------------------------------------------------------------------- /api_templates/ApiBestPractices.Endpoints/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/ApiBestPractices.Endpoints/appsettings.json -------------------------------------------------------------------------------- /api_templates/BackendData/BackendData.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/BackendData.csproj -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/AppDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/AppDbContext.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/Config/AuthorConfig.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/Config/AuthorConfig.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/Config/ConfigConstants.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/Config/ConfigConstants.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/Config/UserConfig.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/Config/UserConfig.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/EfRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/EfRepository.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DataAccess/SeedData.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DataAccess/SeedData.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DomainModel/Author.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DomainModel/Author.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DomainModel/BaseEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DomainModel/BaseEntity.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DomainModel/IAsyncRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DomainModel/IAsyncRepository.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DomainModel/TwitterHelpers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DomainModel/TwitterHelpers.cs -------------------------------------------------------------------------------- /api_templates/BackendData/DomainModel/User.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/DomainModel/User.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Migrations/20220717191514_AddUsers.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Migrations/20220717191514_AddUsers.Designer.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Migrations/20220717191514_AddUsers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Migrations/20220717191514_AddUsers.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Migrations/AppDbContextModelSnapshot.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Migrations/AppDbContextModelSnapshot.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/AccessToken.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/AccessToken.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/IPasswordHasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/IPasswordHasher.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/ITokenFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/ITokenFactory.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/JsonWebToken.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/JsonWebToken.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/PasswordHasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/PasswordHasher.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/SigningConfigurations.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/SigningConfigurations.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/TokenFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/TokenFactory.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Security/TokenOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Security/TokenOptions.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Services/AuthenticationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Services/AuthenticationService.cs -------------------------------------------------------------------------------- /api_templates/BackendData/Services/IAuthenticationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/Services/IAuthenticationService.cs -------------------------------------------------------------------------------- /api_templates/BackendData/database.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/BackendData/database.sqlite -------------------------------------------------------------------------------- /api_templates/controllers/ApiModels/AuthorDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/ApiModels/AuthorDto.cs -------------------------------------------------------------------------------- /api_templates/controllers/ApiModels/BookDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/ApiModels/BookDto.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/AuthorsController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/AuthorsController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/AuthorsUsingMediatrController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/AuthorsUsingMediatrController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/AuthorsUsingMediatrFromBaseController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/AuthorsUsingMediatrFromBaseController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/AuthorsUsingServiceController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/AuthorsUsingServiceController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/DemoController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/DemoController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Controllers/HomeController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Controllers/HomeController.cs -------------------------------------------------------------------------------- /api_templates/controllers/Handlers/CreateAuthorHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Handlers/CreateAuthorHandler.cs -------------------------------------------------------------------------------- /api_templates/controllers/Interfaces/IAuthorService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Interfaces/IAuthorService.cs -------------------------------------------------------------------------------- /api_templates/controllers/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Program.cs -------------------------------------------------------------------------------- /api_templates/controllers/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Properties/launchSettings.json -------------------------------------------------------------------------------- /api_templates/controllers/Services/AuthorService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/Services/AuthorService.cs -------------------------------------------------------------------------------- /api_templates/controllers/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/appsettings.Development.json -------------------------------------------------------------------------------- /api_templates/controllers/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/appsettings.json -------------------------------------------------------------------------------- /api_templates/controllers/controllers.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/controllers.csproj -------------------------------------------------------------------------------- /api_templates/controllers/database.sqlite-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/controllers/database.sqlite-shm -------------------------------------------------------------------------------- /api_templates/controllers/database.sqlite-wal: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api_templates/fastendpoints/Authors/Create.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/Authors/Create.cs -------------------------------------------------------------------------------- /api_templates/fastendpoints/FastEndpointsAPI.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/FastEndpointsAPI.csproj -------------------------------------------------------------------------------- /api_templates/fastendpoints/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/Program.cs -------------------------------------------------------------------------------- /api_templates/fastendpoints/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/Properties/launchSettings.json -------------------------------------------------------------------------------- /api_templates/fastendpoints/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/appsettings.Development.json -------------------------------------------------------------------------------- /api_templates/fastendpoints/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/fastendpoints/appsettings.json -------------------------------------------------------------------------------- /api_templates/minimal/.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/.vscode/launch.json -------------------------------------------------------------------------------- /api_templates/minimal/.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/.vscode/tasks.json -------------------------------------------------------------------------------- /api_templates/minimal/AuthorDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/AuthorDto.cs -------------------------------------------------------------------------------- /api_templates/minimal/Authors/Create.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/Authors/Create.cs -------------------------------------------------------------------------------- /api_templates/minimal/Authors/UpdateAuthorExtension.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/Authors/UpdateAuthorExtension.cs -------------------------------------------------------------------------------- /api_templates/minimal/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/Program.cs -------------------------------------------------------------------------------- /api_templates/minimal/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/Properties/launchSettings.json -------------------------------------------------------------------------------- /api_templates/minimal/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/appsettings.Development.json -------------------------------------------------------------------------------- /api_templates/minimal/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/appsettings.json -------------------------------------------------------------------------------- /api_templates/minimal/minimal.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/api_templates/minimal/minimal.csproj -------------------------------------------------------------------------------- /demos.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/demos.zip -------------------------------------------------------------------------------- /demos2022.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/demos2022.zip -------------------------------------------------------------------------------- /securing_apis/Imperative/Imperative.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/Imperative.sln -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Controllers/DocumentController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Controllers/DocumentController.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Data/DocumentRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Data/DocumentRepository.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Data/IDocumentRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Data/IDocumentRepository.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Models/Document.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Models/Document.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/OwnerPermissions.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/OwnerPermissions.csproj -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Program.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Properties/launchSettings.json -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Services/DocumentAuthorizationCrudHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Services/DocumentAuthorizationCrudHandler.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Services/DocumentAuthorizationHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Services/DocumentAuthorizationHandler.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Services/Operations.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Services/Operations.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/Services/SameAuthorRequirement.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/Services/SameAuthorRequirement.cs -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/appsettings.Development.json -------------------------------------------------------------------------------- /securing_apis/Imperative/OwnerPermissions/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/Imperative/OwnerPermissions/appsettings.json -------------------------------------------------------------------------------- /securing_apis/JsBffSample/BackendApiHost/BackendApiHost.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/BackendApiHost/BackendApiHost.csproj -------------------------------------------------------------------------------- /securing_apis/JsBffSample/BackendApiHost/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/BackendApiHost/Program.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/BackendApiHost/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/BackendApiHost/Properties/launchSettings.json -------------------------------------------------------------------------------- /securing_apis/JsBffSample/BackendApiHost/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/BackendApiHost/Startup.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/BackendApiHost/ToDoController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/BackendApiHost/ToDoController.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/FrontendHost.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/FrontendHost.csproj -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/Program.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/Properties/launchSettings.json -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/Startup.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/ToDoController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/ToDoController.cs -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/StyleSheet.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/StyleSheet.css -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/favicon.ico -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/index.html -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.bundle.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.bundle.min.js -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.bundle.min.js.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.bundle.min.js.map -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.min.css -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.min.css.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/libs/bootstrap.min.css.map -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/libs/jquery-3.6.0.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/libs/jquery-3.6.0.min.js -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/session.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/session.js -------------------------------------------------------------------------------- /securing_apis/JsBffSample/FrontendHost/wwwroot/todo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/FrontendHost/wwwroot/todo.js -------------------------------------------------------------------------------- /securing_apis/JsBffSample/JsBffSample.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/JsBffSample/JsBffSample.sln -------------------------------------------------------------------------------- /securing_apis/jwtapi/AuthExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/AuthExtensions.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/LoginController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/LoginController.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/ProtectedController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/ProtectedController.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/Resources/RefreshTokenResource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/Resources/RefreshTokenResource.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/Resources/RevokeTokenResource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/Resources/RevokeTokenResource.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/Resources/TokenResource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/Resources/TokenResource.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/Resources/UserCredentialsResource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/Resources/UserCredentialsResource.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/Resources/UserResource.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/Resources/UserResource.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Controllers/UsersController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Controllers/UsersController.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Models/ApplicationRole.cs: -------------------------------------------------------------------------------- 1 | namespace JWTAPI.Core.Models; 2 | 3 | public enum ApplicationRole 4 | { 5 | Common = 1, 6 | Administrator = 2 7 | } 8 | -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Models/Role.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Models/Role.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Models/User.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Models/User.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Models/UserRole.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Models/UserRole.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Repositories/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | namespace JWTAPI.Core.Repositories; 2 | 3 | public interface IUnitOfWork 4 | { 5 | Task CompleteAsync(); 6 | } 7 | -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Repositories/IUserRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Repositories/IUserRepository.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Security/Hashing/IPasswordHasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Security/Hashing/IPasswordHasher.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Security/Tokens/AccessToken.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Security/Tokens/AccessToken.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Security/Tokens/ITokenHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Security/Tokens/ITokenHandler.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Security/Tokens/JsonWebToken.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Security/Tokens/JsonWebToken.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Security/Tokens/RefreshToken.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Security/Tokens/RefreshToken.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Services/Communication/BaseResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Services/Communication/BaseResponse.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Services/Communication/CreateUserResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Services/Communication/CreateUserResponse.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Services/Communication/TokenResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Services/Communication/TokenResponse.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Services/IAuthenticationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Services/IAuthenticationService.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Core/Services/IUserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Core/Services/IUserService.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Extensions/MiddlewareExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Extensions/MiddlewareExtensions.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/JWTAPI.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/JWTAPI.csproj -------------------------------------------------------------------------------- /securing_apis/jwtapi/JWTAPI.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/JWTAPI.sln -------------------------------------------------------------------------------- /securing_apis/jwtapi/Mapping/ModelToResourceProfile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Mapping/ModelToResourceProfile.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Mapping/ResourceToModelProfile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Mapping/ResourceToModelProfile.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Persistence/AppDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Persistence/AppDbContext.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Persistence/DatabaseSeed.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Persistence/DatabaseSeed.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Persistence/UnitOfWork.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Persistence/UnitOfWork.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Persistence/UserRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Persistence/UserRepository.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Program.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Properties/launchSettings.json -------------------------------------------------------------------------------- /securing_apis/jwtapi/Security/Hashing/PasswordHasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Security/Hashing/PasswordHasher.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Security/Tokens/SigningConfigurations.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Security/Tokens/SigningConfigurations.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Security/Tokens/TokenHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Security/Tokens/TokenHandler.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Security/Tokens/TokenOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Security/Tokens/TokenOptions.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Services/AuthenticationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Services/AuthenticationService.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Services/UserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Services/UserService.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/Startup.cs -------------------------------------------------------------------------------- /securing_apis/jwtapi/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/appsettings.Development.json -------------------------------------------------------------------------------- /securing_apis/jwtapi/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/WebApiBestPractices/HEAD/securing_apis/jwtapi/appsettings.json --------------------------------------------------------------------------------