Commit Graph

591 Commits

Author SHA1 Message Date
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
Mukul Sabharwal dc456ceab5 Downgrade to use CoreFX NET46 compatible packages 2016-02-19 16:44:01 -08:00
Sebastien Ros c030ef9129 [Fixes #567] Adding port and host parsing in HostString 2016-02-19 16:29:22 -08:00
N. Taylor Mullen 90f71aa6ec Add missing `System.Resources.ResourceManager` dependency. 2016-02-18 19:42:11 -08:00
Ajay Bhargav Baaskaran 3e8368ad66 Enabled xml doc generation 2016-02-18 16:32:10 -08:00
Chris R d4e72564c7 Add AuthenticationManager.HttpContext. Clean up contructors. 2016-02-18 16:03:20 -08:00
N. Taylor Mullen c7029a1bd0 Update System.Linq 4.0.2-* => 4.1.0-*. 2016-02-18 15:35:36 -08:00
Ryan Nowak 91751015ea Reset fields on AuthenticateContext
This is needed for cases where IAuthenticationHandler instances delegate
or modify the output of each-other.
2016-02-18 12:14:53 -08:00
Chris R 5e7b30c04b #542 Add IHttpConnectionFeature.ConnectionId 2016-02-18 11:08:05 -08:00
Doug Bunting 8c120a0792 Extend `WebEncoders` API to avoid allocations within the methods
- rewrite existing methods in terms of the new ones
- don't allocate multiple 0-length arrays

nits:
- clarify a couple of doc comments e.g. using `<paramref/>`
- move an error message into a resource
 - pass parameter names into new resource
- rename parameters for consistency e.g. `inputLength` -> `count`
- name literal `int` parameters
- more `var`
2016-02-17 23:13:33 -08:00
Doug Bunting 5d8231ee0d `OwinExtensions.UseBuilder()` should not leave `ApplicationServices` or `RequestServices` `null`
Also correct tests to avoid warnings and to ensure scenarios are actually tested
- tests previously went `async` without waiting for completion

nit: add parameter `null` checks
2016-02-17 11:31:02 -08:00
Kristian Hellang cb09ffccce Changed SaveAs[Async](string) to CopyTo[Async](Stream) 2016-02-11 12:11:42 -08:00
Chris R 04e9da4e88 #527 Add IFileInfo overloads for SendFileAsync. 2016-02-08 10:55:36 -08:00
Chris R 3e6c7171be #515 Make forgiving vs strict header list parsers. 2016-02-08 10:21:28 -08:00
Pranav K 77c137fc0a Reacting to CoreCLR package version changes 2016-02-08 09:33:46 -08:00
N. Taylor Mullen faf8a73953 Update project.json to remove redundant System.Runtime dependency.
- This package is pulled in transitively.
2016-02-05 17:21:54 -08:00
John Luo 8aa7a0993d Relocating dependencies 2016-02-01 18:26:36 -08:00
John Luo 93079ea3a6 Updating to new CLI 2016-02-01 16:37:16 -08:00
Brennan 765a52007a Use EscapeDataString for encoding Cookies 2016-01-29 12:58:36 -08:00
N. Taylor Mullen 02363da94e Rename AspNet 5 file contents.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:20:40 -08:00
N. Taylor Mullen b2c154b576 Rename AspNet 5 folders and files.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:20:30 -08:00
ryanbrandenburg da478b02ed * Move HttpResponseStreamWriter from Mvc 2016-01-21 10:28:07 -08:00
Pranav K 38feebc0d6 Reacting to CoreCLR package version change 2016-01-20 20:53:25 -08:00
Brennan 3f84e992f4 Make StreamCopyOperation public and update it to same as StaticFiles 2016-01-19 10:03:26 -08:00
Brennan 1f21540fd5 Remove IsLocal 2016-01-19 08:35:53 -08:00
Kristian Hellang 4b64d187c2 Promote IFormFile extension methods to IFormFile 2016-01-13 14:30:14 +01:00
John Luo fa8c5cbb3a Updating QueryString doc comment 2016-01-08 19:28:34 -08:00
David Fowler 6bc8384ea9 Small style cleanup 2016-01-07 20:52:54 -08:00
David Fowler ca8136b73c Compile middleware invoke method when extra args are provided
- Improves the performance when accessing scoped services in middleware
2016-01-07 20:39:04 -08:00
Ben Adams 62ec29b6af Move generic Get/Set into Interface 2015-12-31 20:18:24 +00:00
Stephen Halter 364a712cb3 Merge branch 'lodejard/featurereferences' into dev 2015-12-30 15:35:08 -08:00
Pranav K 161d6ca5c0 Move Microsoft.Extensions.WebEncoders to HtmlAbstractions
Fixes #512
2015-12-23 09:27:39 -08:00
Brennan ee804e5841 Register FileBufferingReadStream for disposal 2015-12-22 16:13:23 -08:00
Hao Kung 1a485fadb0 OptionsModel => Options 2015-12-21 15:04:10 -08:00
Louis DeJardin 290ff2a268 PR feedback 2015-12-16 22:37:07 -08:00
Louis DeJardin 4265855652 PR feedback
Adding comment about reason for public field
2015-12-16 22:35:41 -08:00
Louis DeJardin c05c203c28 Adding example of what http context pooling might look like 2015-12-16 22:02:05 -08:00
Louis DeJardin 0e3fe7493e Streamlining feature cache and object re-initialiation code paths
Shouldn't increase object size, but does improve maintainability
2015-12-16 20:01:55 -08:00
Ben Adams 67c5ec29b3 Allow feature cache to be updated+invalidated 2015-12-15 16:12:37 -08:00
Brennan c41be75796 Wrap Branch in try finally 2015-12-14 14:02:54 -08:00
Brennan 59b32934e3 Change Expires to DateTimeOffset 2015-12-14 08:27:59 -08:00
Brennan 5e42d26fd5 Implement GetHashCode 2015-12-08 10:29:53 -08:00
Pranav K 5231683aae * Removing unused dependencies from code
* Cleaning up usage of CodeAnalysis.
2015-12-07 19:22:53 -08:00
Kristian Hellang c2e7618d9a Added Name and FileName to IFormFile
This commits also gets rid of the name
closure in FormFileCollection by interating
over the files in the collection instead
of using Find and FindAll.

Closes #352 and #499
2015-12-04 20:28:42 +01:00
David Fowler 9887fe0dee Move the header extensions to Http.Abstractions 2015-12-02 23:58:16 -08:00
David Fowler 6055e25d19 Fixed typo in doc comment 2015-12-02 22:51:48 -08:00
David Fowler 5b175beea8 Change SendFileAsync to use a fallback implementation instead of throwing
- If the user wants to use the SendFile API directly then they can access the feature
explicitly.
- Removed SupportsSendFile
- Don't check for existence, let FileStream throw
- Updated Doc comments
- Pass the buffer into StreamCopyOperation
- Using a real using instead of try finally.
2015-12-02 22:37:53 -08:00
Pranav K a0a1c38e44 Moving Microsoft.AspNet.Html.Abstractions to a HtmlAbstractions repo
Fixes #418
2015-12-01 17:35:20 -08:00
John Luo 67aa2546a8 Removing ApplicationServices from HttpContext #466 2015-11-19 09:34:38 -08:00
Pranav K 78e90d7f04 Update ifdefs from DNXCORE50 to DOTNET5_4
Fixes #467
2015-11-18 12:29:47 -08:00
Pavel Krymets 681533e06c Set IHttpContextAccessor only if DI provides it 2015-11-18 09:15:27 -08:00
John Luo fbec068f5c Adding option to configure services when exposing the ASP.NET 5 pipeline via OWIN #398 2015-11-17 11:02:04 -08:00
Pavel Krymets 690e5a66e5 Set default path=/ when removing cookie 2015-11-16 15:58:18 -08:00
Ryan Nowak cb3e9b1218 Change List<T> to IList<T> 2015-11-16 10:51:30 -08:00
John Luo d4d04d2c96 Adding exception message for paths not starting with / #251 2015-11-16 10:21:02 -08:00
Ryan Nowak 88c356f645 Add HtmlContentBuilder and HtmlTextWriter
Remove BufferedHtmlContent
2015-11-16 08:41:03 -08:00
N. Taylor Mullen bb8141710d Remove System beta tag in project.json for coreclr packages. 2015-11-12 12:23:07 -08:00
David Fowler f813d3cce8 Merge pull request #469 from khellang/uri-helper-string-concat
Changed string.Format to StringBuilder
2015-11-10 14:08:32 -08:00
Kristian Hellang f726b7b591 Added PERF comment 2015-11-10 19:55:14 +01:00
Nick Craver 6874b87f13 C#6 Cleanup & Optimizations
The main intent is cleanup using C# 6 operators and normalization of
type aliases. While there are no intended functional changes here, it
does eliminate a few tight race conditions as a bonus (not a real-win
since this isn't thread-safe all over, simply noting).
2015-11-10 09:38:49 -08:00