Commit Graph

550 Commits

Author SHA1 Message Date
David Fowler 945b4e63de Added support for middleware activation via IMiddlewareFactory (#773)
* Added support for middleware activation via IMiddlewareFactory
- IMiddlewareFactory and IMiddleware are new extensiblity points for
activating and authoring middleware. Under the covers, middleware is still
very much just a function. This just provides a nice way to get a per request
activated middleware instance that is created and released via the IMiddlewareFactory.
The caveats are that middleware needs to be registered in the container (by default)
and that not possible to explicitly pass arguments directly via UseMiddleware.
- Added tests
2017-02-13 18:53:10 -08:00
Brian Chavez 6e01e642cb Fixed typo in HttpContext.User XML doc. (#771) 2017-02-08 20:00:08 -08:00
Chris R 96f33b27d4 Migrate from xproj to csproj 2017-02-03 15:37:51 -08:00
Daniel Roth 2703835352 Fix doc comment typo 2017-02-01 06:36:45 -08:00
John Luo 3289afe007 Add check for index advance during parsing 2017-01-31 11:03:20 -08:00
Chris R 779115b1ad #407 Add ContentLength to IHeaderDictionary 2017-01-24 15:14:46 -08:00
john b7d2f8c905 separate GetEncodedUrl and GetEncodedPathAndQuery 2017-01-17 11:37:25 -08:00
john 6ac2452231 update xml doc 2017-01-17 11:37:25 -08:00
john 51f6415ea1 let UriHelper.GetEncodedUrl can get relative url 2017-01-17 11:37:25 -08:00
Chris R 622d112372 #723 Make HttpContextAccessor static AsyncLocal 2017-01-09 14:49:35 -08:00
Ben Adams 3b25acd4ad ContentType.IsNullOrEmpty 2017-01-09 13:38:18 -08:00
John Luo 3ea2f36449 Fix wrong status code 2017-01-06 15:46:00 -08:00
John Luo 33dd1d965f Add all status codes in IANA list and update reason phrases 2017-01-06 13:51:27 -08:00
John Luo 7d20ae2156 Add more status codes and reason phrases 2017-01-05 16:37:16 -08:00
John Luo b34bfdd92d Add 101 status code 2017-01-03 09:55:32 -08:00
Pranav K 991fbb08bc Updating to 4.4 CoreFx packages 2016-12-14 14:47:29 -08:00
Andrius Bentkus a12de2cfd9 Small typo fix 2016-12-09 14:17:47 -08:00
John Luo d50a24145d Add functionalities to HeaderUtilities
- Add allocation free parsing of int32, int64
- Improve performance of converting int64 to string
- Add parsing of seconds from header values
- Add check for existence of cache directives
- Expose CacheControlHeaderValue constants
2016-12-08 17:43:25 -08:00
Kiran Challa aa158f5d25 Modified Base64UrlTextEncoder to reduce string allocations. 2016-11-16 13:43:56 -08:00
Pranav K 4fbb0b01fc Updating versions to 1.2.0-* 2016-11-09 14:17:55 -08:00
jacalvar db677639c3 Created public API baselines 2016-11-04 16:31:24 -07:00
Kiran Challa 4dcde8a329 Added Base64UrlTextEncoder utility from Security repo 2016-11-01 15:31:39 -07:00
Ben Adams 4569653504 Don't allocate for ResponseCookiesFeature 2016-10-07 10:01:42 -07:00
Kristian Hellang 063d6eca0f Added custom RFC 1123 DateTimeFormatter to improve allocation profile (#716) 2016-10-05 12:19:15 -07:00
Pranav K 874dcebbcb Updating partner package versions 2016-09-28 11:50:48 -07:00
Ben Adams 067eb9c6f8 Make FeatureReferences<T>.Fetch inlineable (#704) 2016-09-28 11:35:04 -07:00
Mikael Mengistu 35cde79e46 Renamed HttpMethod class to HttpMethods to avoid conflicts 2016-09-27 14:26:36 -07:00
Mikael Mengistu 626332c5db Adding HTTP method constants 2016-09-26 23:09:08 -07:00
Pavel Krymets 18f08fdb2f Use TaskCache class from Microsoft.Extensions.TaskCache.Sources (#705)
Instead of Task.FromResult(0)
2016-09-07 10:40:13 -07:00
Kiran Challa 30a4b09d9f Fix CookieOptions.HttpOnly doc comment 2016-09-01 10:18:39 -07:00
John Luo e4afd782e8 Add strong and weak ETag comparisons 2016-08-30 14:15:16 -07:00
John Luo e2a0e887af Add UsePathBase middleware 2016-08-16 16:18:36 -07:00
Justin Kotalik 69729bc75b Perf to ToUriComponent 2016-08-10 16:26:33 -07:00
Justin Kotalik a4a4e490c5 Addresses #678 and #679 2016-08-03 22:31:42 -07:00
Pavel Krymets e320755734 Do not run custom header parsers on null header values (#678) 2016-08-02 19:40:30 -07:00
BrennanConroy 9a0ea424ea Fix cross appdomain exception 2016-07-25 09:48:10 -07:00
Pavel Krymets b4b2dd6bf2 Add buffer size parameter to CopyTo method (#674) 2016-07-21 16:40:48 -07:00
Victor Hurdugaci e64b8e55e5 Add some multipart reader utilities to make reading streams easier 2016-07-14 09:25:46 -07:00
Doug Bunting 9a28932b7a To de-dupe, we must remove (again)
- part of aspnet/Common#93
- use `WebEncoders` from Common repo
- leave some of `WebEncodersTests` to ensure resources are brought in correctly
2016-07-12 16:25:53 -07:00
Troy Dai 150b4708f1 Fix PathString over-encoding
Base on RFC 3986, ensure following characters are not encoded

alpha, digit, "-", "_", ".", "~", "@", ":", "/", "!", "$", ";", "=",
"'", "(", ")", "*", "+", ","
2016-07-08 15:54:46 -07:00
Doug Bunting 748e96f513 One build to rule them all
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:01:29 -07:00
Derek Gray 01f247db48 Prevent an unnecessary allocation of a state machine (thanks @PinpointTownes) 2016-07-05 13:44:43 -07:00
Derek Gray 59b605cafb Add UseWhenExtensions and UseWhenExtensionsTests 2016-07-05 11:54:23 -07:00
John Luo 4986137ffe Use filename* for files in multipart forms when available #651 2016-06-29 12:31:52 -07:00
Chris R 3c0c02112d #659 Parse headers with consecutive commas 2016-06-23 14:22:23 -07:00
Pranav K 20d608170e Updating to dev versions 2016-06-16 10:17:59 -07:00
Justin Kotalik d71c2cb6ce Adds Refactor to Equals in Path String, Adds Regression Tests 2016-06-15 16:32:03 -07:00
Justin Kotalik 8f3d894b95 #625 Changes Error Message when trying to reuse stream 2016-06-15 15:33:24 -07:00
Kristian Hellang 3865136b97 Added "451 Unavailable For Legal Reasons" to StatusCodes
From RFC7725 - https://tools.ietf.org/html/rfc7725
2016-06-15 11:36:29 -07:00
Alex Forbes-Reed 0a3213ebaa Added RFC 7538 support 2016-06-15 11:29:23 -07:00
Alex Forbes-Reed 2a1e6649b0 Added RFC 4918 support 2016-06-15 11:29:23 -07:00
Chris R 3fc1fef2be #573 Rename UriHelper.Encode 2016-06-06 13:30:07 -07:00
Pavel Krymets 8b3c308c22 Limit value number instead of key number in form reader 2016-06-01 15:46:40 -07:00
Cesar Blum Silveira 8212694874 Add RawTarget property to IHttpRequestFeature (#596). 2016-05-27 16:54:07 -07:00
Pavel Krymets c63f02c19f Optimize form reader allocations 2016-05-27 08:14:47 -07:00
John Luo 485e2e8327 React to updated CoreCLR packages
https://github.com/aspnet/Coherence/issues/97
2016-05-26 18:28:04 -07:00
Ben Adams a49ba744aa Reduce Revision check calls via interface 2016-05-23 16:23:38 -07:00
moozzyk e854d3aa9a Allow query string parameters without values
Addresses #624
2016-05-23 15:41:37 -07:00
John Luo 440c6e43e1 Minor rewording missed from PR 2016-05-23 10:15:39 -07:00
John Luo 6d91a160b6 Add IsAvailable property to ISession #634 2016-05-23 10:08:05 -07:00
BrennanConroy 504a825406 Fix owin spec links 2016-05-20 11:37:13 -07:00
Pranav K 8f233ea796 Revert "React to updated CoreCLR packages"
This reverts commit 097b339f74.
2016-05-18 09:42:01 -07:00
Hao Kung 36329b07c8 Add Description as well to AuthenticateInfo
(needed by Identity)
2016-05-17 15:01:44 -07:00
John Luo 097b339f74 React to updated CoreCLR packages
https://github.com/aspnet/Coherence/issues/97
2016-05-17 14:39:32 -07:00
Chris R b95843452c #612 Move CookieSecureOption / SecurePolicy to Http.Abstractions 2016-05-16 12:23:41 -07:00
Pranav K a4bd3bc895 Merge branch 'release' into dev 2016-05-02 14:56:19 -07:00
Chris R 5767306875 #547 Remove '+' replacement from request cookies. 2016-05-02 14:44:26 -07:00
Pranav K edff60f293 Fix build warnings 2016-05-02 11:27:17 -07:00
Chris R 7ebd87a6b2 Add doc comments for FormOptions. 2016-04-29 10:24:26 -07:00
Hao Kung 3a7f6a7228 Add GetAuthenticateInfo method 2016-04-26 14:09:48 -07:00
Chris R 3e69df87f8 Merge branch 'release' into dev 2016-04-25 12:00:37 -07:00
Chris R 13f73c6101 Make the form body limits configurable. 2016-04-25 11:59:40 -07:00
Jimmy Hannon b0ebcc3aeb Update RunExtensions.cs
small typo
2016-04-14 14:49:09 +02:00
Pranav K b50cd32b8e Removing imports from src projects 2016-04-08 06:48:41 -07:00
Pranav K fd0505ffae Merge branch 'release' into dev 2016-04-08 06:48:41 -07:00
Chris R e07008ddec Prevent double flush in HttpResponseStreamWriter. 2016-04-06 12:08:20 -07:00
Chris R 8196f2ab81 #605 Fix regressions in FormReader / FileBufferingReadStream. 2016-04-01 11:34:45 -07:00
Chris R ac12319cd7 #333 Add doc comments for feature interfaces. 2016-03-31 16:13:08 -07:00
Chris R 3a97a6bdfd #602 Invoke APM callbacks on the threadpool. 2016-03-31 12:35:20 -07:00
Doug Bunting 6725d68559 Move some implementations (all feature implementations) out of `.Internal` namespaces
- #549, #592
- move feature implementations to `Microsoft.AspNetCore.Http.Features` and `...Authentication.Features`
- move `DefaultHttpContext`, `HttpContextAccessor`, `HttpContextFactory`, `FormCollection` and
  `HeaderDictionary` to `Microsoft.AspNetCore.Http`
- move `FormFile` to `Microsoft.AspNetCore.Http.Internal`
 - that and `Microsoft.AspNetCore.Http.Authentication.Internal` are the remaining `.Internal` namespaces

nits:
- remove a couple of parameterless constructors
- add / fill subfolders to align with new namespaces
- remove all use of (unnecessary) "T:..." `<see cref=""/>` values
2016-03-30 16:01:37 -07:00
Chris R bd60507dcd #553 Use System.Buffers for temporary arrays 2016-03-28 13:57:08 -07:00
Eilon Lipton 1b71748150 More package metadata fixes 2016-03-28 10:26:49 -07:00
Eilon Lipton 78a3fc91d3 Fix package metadata 2016-03-26 22:42:17 -07:00
Doug Bunting 80813f7c1e Use pooled `StringBuilder` to reduce allocations when adding response cookies
- #561
- new `SetCookieHeaderValue.AppendToStringBuilder()` method; avoids per-call `StringBuilder` allocation
- `ResponseCookies` uses `ObjectPool<StringBuilder>` that `ResponseCookiesFeature` provides
 - `ResponseCookies` works fine if no `ObjectPoolProvider` is available
- `IHttpContextFactory` instance is a singleton instantiated from CI
 - make `HttpContextFactory` `ObjectPoolProvider` and `ResponseCookiesFeature`-aware
 - apply same pattern to sample `PooledHttpContextFactory`
- pool is not currently configurable; defaults are fine for response cookies
 - if we need (policy) configuration, would add an `IOptions<HttpContextFactorySettings>`

nit: Add some doc comments
2016-03-25 09:38:52 -07:00
Pranav K 6a5a05303f Revert "Revert "Reacting to CoreCLR package changes""
This reverts commit d035b7c533.
2016-03-22 15:15:11 -07:00
Pranav K d035b7c533 Revert "Reacting to CoreCLR package changes"
This reverts commit 131db6c41e.
2016-03-21 10:29:13 -07:00
Doug Bunting 6f24508a33 Move remaining feature interfaces into `Microsoft.AspNetCore.Http.Features` package and namespace
- #590, also related to #561
- move feature interfaces from `Microsoft.AspNetCore.Http` package
- move required classes from `Microsoft.AspNetCore.Http.Abstractions` package
- move `ISession` and `WebSocketAcceptContext` to `Microsoft.AspNetCore.Http` namespace (#590)

nit: remove transient dependencies listed in `Microsoft.AspNetCore.Http.Abstractions`'s `project.json`
2016-03-21 09:05:09 -07:00
Pranav K 131db6c41e Reacting to CoreCLR package changes 2016-03-21 00:01:21 -07:00
Chris R ce408a999e #578 Do not buffer the request body by default when reading forms. 2016-03-17 15:21:10 -07:00
Pranav K 67449276a5 Target minimal TFMs 2016-03-12 09:49:45 -08:00
Brice Lambson a051244faf Don't reference facades in NuSpec
These can be removed entirely after dotnet/cli#164
2016-03-11 08:40:56 -08:00
Ben Adams 982aa08cda Cache doesn't need clearing when resolving uncached feature 2016-03-08 10:36:44 -05:00
Ben Adams 8c72741992 Lower alloc KeyValueAccumulator for common path 2016-03-07 10:09:27 -08:00
Chris R 1f754f65d3 Add ISession.Id 2016-03-04 14:28:20 -08:00
David Obando 15649b7e31 Faster SubMatch implementation
Submatch has been sped up by implementing a modified Boyer–Moore–Horspool algorithm with an average-case complexity of O(N) on random text. Worst case, it behaves similarly to the previous implementation O(MN), where M is the length of the boundary and N is the length of the buffer to operate on.

Method SubMatch looks for two things:

  1. Whether the byte array segment fully contains the boundary, or
  2. Whether the byte array ends with the start of the boundary.

Case 1 is now a lot faster than the previous implementation. Case 2 remains using the same code as before. The method will do Case 1 until the matchOffset is equal to N-M. It then switches to Case 2, unless a match is found.

The code can be further sped up with a full Boyer–Moore implementation, or something more sophisticated. This however can be evaluated in the case that this implementation is insufficiently performant for our main scenarios.

This commit resolves issue #575.
2016-03-04 10:54:20 -08:00
Ajay Bhargav Baaskaran 97940747c3 Added missed attribute 2016-03-03 17:50:40 -08:00
Ajay Bhargav Baaskaran dd7198f410 Added Company, Copyright and Product attributes to AssemblyInfo 2016-03-03 17:32:08 -08:00
Doug Bunting 3105fd1075 Remove project name from output path
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 18:51:48 -08:00
N. Taylor Mullen 9f499d7962 Transition to netstandard.
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:31:53 -08:00
N. Taylor Mullen dabe2e0c24 Revert "Downgrade to use CoreFX NET46 compatible packages"
This reverts commit dc456ceab5.
2016-02-19 20:33:13 -08:00