Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

Commit 2b60dbc

Browse files
committed
Feedback
1 parent 1d6d1e8 commit 2b60dbc

File tree

4 files changed

+20
-10
lines changed

4 files changed

+20
-10
lines changed

src/Microsoft.AspNetCore.Http.Features/SameSiteEnforcementMode.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
namespace Microsoft.AspNetCore.Http
55
{
6+
// RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00
7+
// This mirrors Microsoft.Net.Http.Headers.SameSiteEnforcementMode
68
public enum SameSiteEnforcementMode
79
{
810
None = 0,

src/Microsoft.Net.Http.Headers/SameSiteEnforcementMode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Microsoft.Net.Http.Headers
55
{
6+
// RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00
67
public enum SameSiteEnforcementMode
78
{
89
None = 0,

src/Microsoft.Net.Http.Headers/SetCookieHeaderValue.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ public class SetCookieHeaderValue
1717
private const string DomainToken = "domain";
1818
private const string PathToken = "path";
1919
private const string SecureToken = "secure";
20+
// RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00
2021
private const string SameSiteToken = "samesite";
21-
private static readonly string SameSiteLaxToken = SameSiteEnforcementMode.Lax.ToString();
22-
private static readonly string SameSiteStrictToken = SameSiteEnforcementMode.Strict.ToString();
22+
private static readonly string SameSiteLaxToken = SameSiteEnforcementMode.Lax.ToString().ToLower();
23+
private static readonly string SameSiteStrictToken = SameSiteEnforcementMode.Strict.ToString().ToLower();
2324
private const string HttpOnlyToken = "httponly";
2425
private const string SeparatorToken = "; ";
2526
private const string EqualsToken = "=";
@@ -440,7 +441,7 @@ private static int GetSetCookieLength(string input, int startIndex, out SetCooki
440441
{
441442
result.SameSite = SameSiteEnforcementMode.Lax;
442443
}
443-
else if (string.Equals(enforcementMode, SameSiteStrictToken, StringComparison.OrdinalIgnoreCase))
444+
else
444445
{
445446
result.SameSite = SameSiteEnforcementMode.Strict;
446447
}

test/Microsoft.Net.Http.Headers.Tests/SetCookieHeaderValueTest.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static TheoryData<SetCookieHeaderValue, string> SetCookieHeaderDataSet
2626
Path = "path1",
2727
Secure = true
2828
};
29-
dataset.Add(header1, "name1=n1=v1&n2=v2&n3=v3; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite=Strict; httponly");
29+
dataset.Add(header1, "name1=n1=v1&n2=v2&n3=v3; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite=strict; httponly");
3030

3131
var header2 = new SetCookieHeaderValue("name2", "");
3232
dataset.Add(header2, "name2=");
@@ -51,7 +51,7 @@ public static TheoryData<SetCookieHeaderValue, string> SetCookieHeaderDataSet
5151
{
5252
SameSite = SameSiteEnforcementMode.Lax,
5353
};
54-
dataset.Add(header6, "name6=value6; samesite=Lax");
54+
dataset.Add(header6, "name6=value6; samesite=lax");
5555

5656
var header7 = new SetCookieHeaderValue("name7", "value7")
5757
{
@@ -126,7 +126,7 @@ public static TheoryData<IList<SetCookieHeaderValue>, string[]> ListOfSetCookieH
126126
Path = "path1",
127127
Secure = true
128128
};
129-
var string1 = "name1=n1=v1&n2=v2&n3=v3; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite=Strict; httponly";
129+
var string1 = "name1=n1=v1&n2=v2&n3=v3; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite=strict; httponly";
130130

131131
var header2 = new SetCookieHeaderValue("name2", "value2");
132132
var string2 = "name2=value2";
@@ -148,13 +148,16 @@ public static TheoryData<IList<SetCookieHeaderValue>, string[]> ListOfSetCookieH
148148
{
149149
SameSite = SameSiteEnforcementMode.Lax
150150
};
151-
var string5 = "name5=value5; samesite=Lax";
151+
var string5a = "name5=value5; samesite=lax";
152+
var string5b = "name5=value5; samesite=Lax";
152153

153154
var header6 = new SetCookieHeaderValue("name6", "value6")
154155
{
155156
SameSite = SameSiteEnforcementMode.Strict
156157
};
157-
var string6 = "name6=value6; samesite";
158+
var string6a = "name6=value6; samesite";
159+
var string6b = "name6=value6; samesite=Strict";
160+
var string6c = "name6=value6; samesite=invalid";
158161

159162
dataset.Add(new[] { header1 }.ToList(), new[] { string1 });
160163
dataset.Add(new[] { header1, header1 }.ToList(), new[] { string1, string1 });
@@ -165,8 +168,11 @@ public static TheoryData<IList<SetCookieHeaderValue>, string[]> ListOfSetCookieH
165168
dataset.Add(new[] { header2, header1 }.ToList(), new[] { string2 + ", " + string1 });
166169
dataset.Add(new[] { header1, header2, header3, header4 }.ToList(), new[] { string1, string2, string3, string4 });
167170
dataset.Add(new[] { header1, header2, header3, header4 }.ToList(), new[] { string.Join(",", string1, string2, string3, string4) });
168-
dataset.Add(new[] { header5 }.ToList(), new[] { string5 });
169-
dataset.Add(new[] { header6 }.ToList(), new[] { string6 });
171+
dataset.Add(new[] { header5 }.ToList(), new[] { string5a });
172+
dataset.Add(new[] { header5 }.ToList(), new[] { string5b });
173+
dataset.Add(new[] { header6 }.ToList(), new[] { string6a });
174+
dataset.Add(new[] { header6 }.ToList(), new[] { string6b });
175+
dataset.Add(new[] { header6 }.ToList(), new[] { string6c });
170176

171177
return dataset;
172178
}

0 commit comments

Comments
 (0)