Skip to content

Commit e4a7ddb

Browse files
JinhuafeiHongGit
authored andcommitted
Dev prepareoss (#3)
* day 1 checkin * save my work 3/30 * refactoring code and adding tests are done * clean up build scripts * add docs and format code * update cla
1 parent 6ad9a92 commit e4a7ddb

File tree

66 files changed

+2859
-1216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2859
-1216
lines changed

CONTRIBUTING.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# How to contribute
2+
3+
One of the easiest ways to contribute is to participate in discussions and discuss issues. You can also contribute by submitting pull requests with code changes.
4+
5+
6+
## General feedback and discussions?
7+
Please start a discussion on the [Issue tracker](https://github.com/aspnet/aspnetoutputcache/issues).
8+
9+
10+
## Bugs and feature requests?
11+
For non-security related bugs please log a new issue according to the [Functional bug template](https://github.com/aspnet/AspNetOutputCache/wiki/Functional-bug-template).
12+
13+
14+
15+
## Reporting security issues and bugs
16+
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://technet.microsoft.com/en-us/security/ff852094.aspx).
17+
18+
19+
## Contributing code and content
20+
21+
**Obtaining the source code**
22+
23+
If you are an outside contributer, please fork the repository. See the GitHub documentation for [forking a repo](https://help.github.com/articles/fork-a-repo/) if you have any questions about this.
24+
25+
**Submitting a pull request**
26+
27+
You will need to sign a [Contributor License Agreement](https://cla.opensource.microsoft.com//) when submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to follow the instructions provided by the CLA bot when you send the pull request. This needs to only be done once for any Microsoft OSS project.
28+
29+
If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requests. Make sure the respository can build and all tests pass.
30+
31+
**Commit/Pull Request Format**
32+
33+
```
34+
Summary of the changes (Less than 80 chars)
35+
- Detail 1
36+
- Detail 2
37+
38+
Addresses #bugnumber (in this specific format)
39+
```
40+
41+
**Tests**
42+
43+
- Tests need to be provided for every bug/feature that is completed.
44+
- Tests only need to be present for issues that need to be verified by QA (e.g. not tasks)
45+
- If there is a scenario that is far too hard to test there does not need to be a test for it.
46+
- "Too hard" is determined by the team as a whole.
47+
48+
**Feedback**
49+
50+
Your pull request will now go through extensive checks by the subject matter experts on our team. Please be patient; we have hundreds of pull requests across all of our repositories. Update your pull request according to feedback until it is approved by one of the ASP.NET team members. After that, one of our team members will add the pull request to **dev**.

License.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Copyright (c) Microsoft Corporation
2+
All rights reserved.
3+
4+
MIT License
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy of
7+
this software and associated documentation files (the ""Software""), to deal in
8+
the Software without restriction, including without limitation the rights to
9+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10+
the Software, and to permit persons to whom the Software is furnished to do so,
11+
subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Microsoft.AspNet.OutputCache.sln

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 14
4-
VisualStudioVersion = 14.0.25420.1
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.27130.2036
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.OutputCache.OutputCacheModuleAsync", "src\OutputCacheModuleAsync\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.csproj", "{3B446E33-7B1C-4A32-AEB8-92DC6CE94F77}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.OutputCache.CustomOutputCacheProvider", "test\CustomOutputCacheProvider\Microsoft.AspNet.OutputCache.CustomOutputCacheProvider.csproj", "{A8F3E399-BCAF-4F3E-BC16-5CA98A779916}"
9-
EndProject
108
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider", "src\SQLAsyncOutputCacheProvider\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.csproj", "{062FD141-4E51-4943-8C69-385DDE3D2792}"
119
EndProject
10+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D256C480-BB19-4239-AD53-DF634A794F41}"
11+
EndProject
12+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{BCF9496E-D71E-4F4A-814B-B37830A87FF3}"
13+
EndProject
14+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.Test", "test\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.Test\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.Test.csproj", "{89636B89-D392-47CA-9D81-BEB4C5252D75}"
15+
EndProject
16+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.Test", "test\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.Test\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.Test.csproj", "{B2C127BD-077B-4B9A-8163-F77DF76CE6A8}"
17+
EndProject
1218
Global
1319
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1420
Debug|Any CPU = Debug|Any CPU
@@ -19,16 +25,29 @@ Global
1925
{3B446E33-7B1C-4A32-AEB8-92DC6CE94F77}.Debug|Any CPU.Build.0 = Debug|Any CPU
2026
{3B446E33-7B1C-4A32-AEB8-92DC6CE94F77}.Release|Any CPU.ActiveCfg = Release|Any CPU
2127
{3B446E33-7B1C-4A32-AEB8-92DC6CE94F77}.Release|Any CPU.Build.0 = Release|Any CPU
22-
{A8F3E399-BCAF-4F3E-BC16-5CA98A779916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23-
{A8F3E399-BCAF-4F3E-BC16-5CA98A779916}.Debug|Any CPU.Build.0 = Debug|Any CPU
24-
{A8F3E399-BCAF-4F3E-BC16-5CA98A779916}.Release|Any CPU.ActiveCfg = Release|Any CPU
25-
{A8F3E399-BCAF-4F3E-BC16-5CA98A779916}.Release|Any CPU.Build.0 = Release|Any CPU
2628
{062FD141-4E51-4943-8C69-385DDE3D2792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2729
{062FD141-4E51-4943-8C69-385DDE3D2792}.Debug|Any CPU.Build.0 = Debug|Any CPU
2830
{062FD141-4E51-4943-8C69-385DDE3D2792}.Release|Any CPU.ActiveCfg = Release|Any CPU
2931
{062FD141-4E51-4943-8C69-385DDE3D2792}.Release|Any CPU.Build.0 = Release|Any CPU
32+
{89636B89-D392-47CA-9D81-BEB4C5252D75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33+
{89636B89-D392-47CA-9D81-BEB4C5252D75}.Debug|Any CPU.Build.0 = Debug|Any CPU
34+
{89636B89-D392-47CA-9D81-BEB4C5252D75}.Release|Any CPU.ActiveCfg = Release|Any CPU
35+
{89636B89-D392-47CA-9D81-BEB4C5252D75}.Release|Any CPU.Build.0 = Release|Any CPU
36+
{B2C127BD-077B-4B9A-8163-F77DF76CE6A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{B2C127BD-077B-4B9A-8163-F77DF76CE6A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{B2C127BD-077B-4B9A-8163-F77DF76CE6A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
39+
{B2C127BD-077B-4B9A-8163-F77DF76CE6A8}.Release|Any CPU.Build.0 = Release|Any CPU
3040
EndGlobalSection
3141
GlobalSection(SolutionProperties) = preSolution
3242
HideSolutionNode = FALSE
3343
EndGlobalSection
44+
GlobalSection(NestedProjects) = preSolution
45+
{3B446E33-7B1C-4A32-AEB8-92DC6CE94F77} = {D256C480-BB19-4239-AD53-DF634A794F41}
46+
{062FD141-4E51-4943-8C69-385DDE3D2792} = {D256C480-BB19-4239-AD53-DF634A794F41}
47+
{89636B89-D392-47CA-9D81-BEB4C5252D75} = {BCF9496E-D71E-4F4A-814B-B37830A87FF3}
48+
{B2C127BD-077B-4B9A-8163-F77DF76CE6A8} = {BCF9496E-D71E-4F4A-814B-B37830A87FF3}
49+
EndGlobalSection
50+
GlobalSection(ExtensibilityGlobals) = postSolution
51+
SolutionGuid = {51897B01-673A-47FD-87BC-8FD7C01950E6}
52+
EndGlobalSection
3453
EndGlobal

MicrosoftAspNetOutputCache.msbuild

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,32 @@
44
<ItemGroup>
55
<AssemblyProject Include="src\OutputCacheModuleAsync\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.csproj" />
66
<AssemblyProject Include="src\SQLAsyncOutputCacheProvider\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.csproj" />
7-
<AssemblyProject Include="test\CustomOutputCacheProvider\Microsoft.AspNet.OutputCache.CustomOutputCacheProvider.csproj" />
7+
</ItemGroup>
8+
<ItemGroup>
9+
<TestProject Include="test\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.Test\Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.Test.csproj" />
10+
<TestProject Include="test\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.Test\Microsoft.AspNet.OutputCache.OutputCacheModuleAsync.Test.csproj" />
811
</ItemGroup>
912
<ItemGroup>
1013
<PackageProject Include="src\Packages\Packages.csproj" />
1114
</ItemGroup>
1215

13-
<Target Name="Build" DependsOnTargets="BuildAssemblies;BuildPackages" />
16+
<Target Name="Build" DependsOnTargets="BuildAssemblies;UnitTest;BuildPackages" />
1417
<Target Name="Clean" DependsOnTargets="CleanPackages;CleanAssemblies" />
1518
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
1619

1720
<Target Name="BuildAssemblies" DependsOnTargets="RestorePackages">
18-
<MSBuild Targets="Build" Projects="@(AssemblyProject)" />
21+
<MSBuild Targets="Build" Projects="@(AssemblyProject);@(TestProject)" />
1922
</Target>
2023

2124
<Target Name="CleanAssemblies">
22-
<MSBuild Targets="Clean" Projects="Microsoft.Aspnet.OutputCache.sln" />
25+
<MSBuild Targets="Clean" Projects="Microsoft.AspNet.OutputCache.sln" />
2326
</Target>
2427

2528
<Target Name="RebuildAssemblies" DependsOnTargets="Clean;Build" />
2629

2730
<!-- Packages build -->
2831

29-
<Target Name="BuildPackages" DependsOnTargets="RestorePackages">
32+
<Target Name="BuildPackages" DependsOnTargets="RestorePackages">
3033
<MSBuild Targets="" Projects="@(PackageProject)" />
3134
</Target>
3235

@@ -39,6 +42,10 @@
3942
<Target Name="RestorePackages">
4043
<Exec Command=".nuget\NuGet.exe restore" />
4144
</Target>
45+
46+
<Target Name="UnitTest">
47+
<MSBuild Targets="XunitTest" Projects="@(TestProject)" />
48+
</Target>
4249

4350
<Import Project="tools\MicrosoftAspNetOutputCache.targets"/>
4451
</Project>

Readme.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## Introduction
2+
OutputCacheModule is ASP.NET’s default handler for storing the generated output of pages, controls, and HTTP responses. This content can then be reused when appropriate to improve performance. Prior to the .NET Framework 4.6.2, the OutputCache Module did not support async read/write to the storage. You can find more details on [this blog post](https://blogs.msdn.microsoft.com/webdev/2016/12/05/introducing-the-asp-net-async-outputcache-module/).
3+
4+
## How to build
5+
1. Open a [VS developer command prompt](https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs)
6+
2. Run build.cmd. This will build Nuget package and run all the unit tests.
7+
3. All the build artifacts will be under AspNetOutputCache\bin\Release\ folder.
8+
9+
## How to contribute
10+
Information on contributing to this repo is in the [Contributing Guide](CONTRIBUTING.md).
11+
12+
## Settings of the module and providers
13+
14+
#### Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider
15+
16+
The settings of this provider is located in the following configuration section in web.config.
17+
```
18+
<caching>
19+
<outputCache defaultProvider="SQLAsyncOutputCacheProvider">
20+
<providers>
21+
<add name="SQLAsyncOutputCacheProvider" connectionStringName="DefaultConnection" UseInMemoryTable="[true|false]"
22+
type="Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider.SQLAsyncOutputCacheProvider, Microsoft.AspNet.OutputCache.SQLAsyncOutputCacheProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
23+
</providers>
24+
</outputCache>
25+
</caching>
26+
```
27+
28+
1. *UseInMemoryTable* - Indicates whether to use Sql server 2016 In-Memory OLTP for the provider.

build.cmd

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,9 @@ setlocal
44

55
set logOptions=/flp:Summary;Verbosity=diag;LogFile=msbuild.log /flp1:warningsonly;logfile=msbuild.wrn /flp2:errorsonly;logfile=msbuild.err
66

7-
set MSBUILDEXE=
8-
if exist "%SystemDrive%\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" (
9-
set MSBUILDEXE="%SystemDrive%\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
10-
GOTO BUILD
11-
)
12-
13-
if exist "%SystemDrive%\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" (
14-
set MSBUILDEXE="%SystemDrive%\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
15-
GOTO BUILD
16-
)
17-
18-
if not defined MSBUILDEXE (
19-
set MSBUILDEXE="C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
20-
)
7+
echo Please build from VS 2015(or newer version) Developer Command Prompt
218

229
:BUILD
23-
REM %MSBUILDEXE% "%~dp0\MicrosoftAspNetOutputCache.msbuild" %logOptions% /v:d /maxcpucount /nodeReuse:false %*
24-
%MSBUILDEXE% "%~dp0\MicrosoftAspNetOutputCache.msbuild" %logOptions% /v:diag /maxcpucount /nodeReuse:false %*
10+
msbuild "%~dp0MicrosoftAspNetOutputCache.msbuild" %logOptions% /v:m /maxcpucount /nodeReuse:false %*
2511

2612
endlocal

src/OutputCacheModuleAsync/CacheDirectives.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
2-
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
35
sealed class CacheDirectives {
46
public const string NoCache = "no-cache";
57
public const string NoStore = "no-store";

src/OutputCacheModuleAsync/CachedRawResponse.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
36

47
[Serializable]

src/OutputCacheModuleAsync/CachedVary.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
36

47
[Serializable]

src/OutputCacheModuleAsync/Converter.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
36
using System.Collections;
47
using System.Collections.Generic;
@@ -49,7 +52,7 @@ public Converter() {
4952
IHttpResponseElement_GetSize = IHttpResponseElementType.GetMethod("GetSize");
5053

5154
// Fileds
52-
HttpFileResponseElement_FileName = HttpFileResponseElementType.GetField("_filename", BindingFlags.Instance);
55+
HttpFileResponseElement_FileName = HttpFileResponseElementType.GetField("_filename", bindingFlags);
5356
HttpFileResponseElement_Offset = HttpFileResponseElementType.GetField("_offset", bindingFlags);
5457
HttpFileResponseElement_IsImpersonating = HttpFileResponseElementType.GetField("_isImpersonating", bindingFlags);
5558
HttpFileResponseElement_UseTransmitFile = HttpFileResponseElementType.GetField("_useTransmitFile", bindingFlags);
@@ -102,11 +105,11 @@ public CachedRawResponse CreateCachedRawResponse(OutputCacheEntry oce) {
102105
foreach (var re in oce.ResponseBuffers) {
103106
// convert the public ResponseElement classes back to IHttpResponseElement internal classes
104107
object elem = null;
105-
if (re is FileResponseElement) {
106-
elem = CreateHttpFileResponseElement((MemoryResponseElement)re);
108+
if (re is OutputCacheFileResponseElement) {
109+
elem = CreateHttpFileResponseElement((OutputCacheFileResponseElement)re);
107110
}
108111
else if (re is SubstitutionResponseElement) {
109-
elem = CreateHttpSubstBlockResponseElement((MemoryResponseElement)re);
112+
elem = CreateHttpSubstBlockResponseElement((SubstitutionResponseElement)re);
110113
}
111114
else if (re is MemoryResponseElement) {
112115
elem = CreateHttpResponseBufferElement((MemoryResponseElement)re);
@@ -146,9 +149,7 @@ private ResponseElement CreateMemoryResponseElement(object o) {
146149
return new MemoryResponseElement(b, length);
147150
}
148151

149-
private object CreateHttpFileResponseElement(ResponseElement e) {
150-
var fre = (OutputCacheFileResponseElement)e;
151-
152+
private object CreateHttpFileResponseElement(OutputCacheFileResponseElement fre) {
152153
//[Lan] how about we extend FileResponseElement class to store those two bool value
153154
// HttpContext context = HttpContext.Current;
154155
// HttpWorkerRequest wr = (context != null) ? context.WorkerRequest : null;
@@ -162,8 +163,7 @@ private object CreateHttpFileResponseElement(ResponseElement e) {
162163
return HttpFileResponseElement_Ctor.Invoke(new object[] { fre.Path, fre.Offset, fre.Length, fre.IsImpersonating, fre.SupportsLongTransmitFile });
163164
}
164165

165-
private object CreateHttpSubstBlockResponseElement(ResponseElement e) {
166-
var sre = (SubstitutionResponseElement)e;
166+
private object CreateHttpSubstBlockResponseElement(SubstitutionResponseElement sre) {
167167
return HttpSubstBlockResponseElement_Ctor.Invoke(new object[] { sre.Callback });
168168
}
169169

src/OutputCacheModuleAsync/DependencyCacheEntry.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
3-
using System.Web.Caching;
46

57
[Serializable]
68
sealed class DependencyCacheEntry {

src/OutputCacheModuleAsync/HttpCachePolicySettings.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
36
using System.Collections.Generic;
47
using System.Web;

src/OutputCacheModuleAsync/HttpHeaders.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
sealed class HttpHeaders {
36
public const string IfModifiedSince = "If-Modified-Since";
47
public const string IfNoneMatch = "If-None-Match";

src/OutputCacheModuleAsync/HttpMethods.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
sealed class HttpMethods {
36
public const string POST = "POST";
47
public const string HEAD = "HEAD";

src/OutputCacheModuleAsync/HttpRawResponse.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System;
36
using System.Collections;
47
using System.Collections.Specialized;

src/OutputCacheModuleAsync/ICacheDependencyHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.AspNet.OutputCache {
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license. See the License.txt file in the project root for full license information.
3+
4+
namespace Microsoft.AspNet.OutputCache {
25
using System.Runtime.Caching;
36
using System.Threading.Tasks;
47

0 commit comments

Comments
 (0)