If another handler modifies the request headers the modified headers get
applied on subsequent requests, which is not correct. This change copies
the headers before sending the request and uses the original headers for
the redirect request instead of the potentially modified ones.
Both UnsupportedContentTypeFilter and ModelStateInvalidFilter use ModelState to
determine the response. UnsupportedContentTypeFilter returns a more specific
response and should execute earlier than the latter filter.
Fixes#8236
- Add abstract CompositeValidationAttribute.
- Change DataAnnotationsMetadataProvider.CreateValidationMetadata to
populate ValidatorMetadata with validation attributes from CompositeValidationAttribute.
* Change DefaultApiConventions
* Introduce attributes for matching by name and type.
* Move discovery of ApiConventionAttribute to ApiBehaviorApplicationModelProvider. This is required
for us to detect during startup if the convention is incorrectly authored.
- #7805
- make initial copy of apps from aspnet/Performance repo
- add apps to solution
- add Readme for the benchmark apps
- update BasicApi app to actually do authentication and authorization
- bug in the ported app
- refactor `Main` methods and add `CreateWebHostBuilder(...)` methods
- change projects to understand `$(BenchmarksTargetFramework)`
- use NuGet.org EF packages to avoid changing the Universe build graph
- use SQLite instead of LocalDb by default
- remove unnecessary appsettings.json files and JSON configuration support
- add EF migrations
- (greatly) reduce startup times compared to creating / deleting databases
- add MySql, PostgreSQL, and SqlServer support
- load BasicApi data in a `DbContext.OnModelCreating(...)` override
- no longer need seed.sql
- generalize migrations to support multiple providers
- use negative seeding indices to work around npgsql/Npgsql.EntityFrameworkCore.PostgreSQL#36
- work around Pomelo lack of strong name (PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#603)
- use BenchmarksOnly* properties for EF dependencies
- see also aspnet/Universe#1224
- drop databases (if SQLite) or migrations (otherwise) in `IApplicationLifetime.ApplicationStopping` handlers
- add functional tests
- drop SQLite database at end of test run
- add benchmarks automation
- add anonymous BasicApi action i.e. require no authorization
- add non-antiforgery BasicViews actions
Address PR comments
- remove `AntiforgeryTestHelper` workarounds
- use `[ApiController]`
- use `ActionResult<Pet>`
- remove unused classes
nits:
- take VS suggestions in added files
- optionally display create and delete SQL scripts for per-database migrations
- merge `InsertData(...)` calls for consistency with most supported EF providers
- SQLite is the only one that requires separate `INSERT`s and EF does the splitting
- Regenerated test baselines.
- Update code styling in TagHelpers.
- Modified some comments for clarity.
- Renamed fallback integrity attribute for both script and link tags.
#7845