5
5
6
6
namespace QueueIT . KnownUserV3 . SDK
7
7
{
8
+ public class SDKInitializer
9
+ {
10
+ public static void SetHttpRequest ( IHttpRequest httpRequest )
11
+ {
12
+ HttpContextProvider . SetHttpRequest ( httpRequest ) ;
13
+ }
14
+ }
15
+
8
16
class HttpContextProvider : IHttpContextProvider
9
17
{
10
- public IHttpRequest HttpRequest { get ; } = new HttpRequest ( ) ;
18
+ IHttpRequest _httpRequest ;
19
+ public IHttpRequest HttpRequest => _httpRequest ?? ( _httpRequest = new HttpRequest ( ) ) ;
20
+
21
+ IHttpResponse _httpResponse ;
22
+ public IHttpResponse HttpResponse => _httpResponse ?? ( _httpResponse = new HttpResponse ( ) ) ;
11
23
12
- public IHttpResponse HttpResponse { get ; } = new HttpResponse ( ) ;
24
+ public static IHttpContextProvider Instance { get ; } = new HttpContextProvider ( ) ;
13
25
14
- public static IHttpContextProvider Instance { get ; private set ; } = new HttpContextProvider ( ) ;
26
+ public static void SetHttpRequest ( IHttpRequest httpRequest )
27
+ {
28
+ ( ( HttpContextProvider ) Instance ) . _httpRequest = httpRequest ;
29
+ }
15
30
}
16
31
17
- class HttpRequest : IHttpRequest
32
+ public class HttpRequest : IHttpRequest
18
33
{
19
34
public string UserAgent => HttpContext . Current . Request . UserAgent ;
20
35
@@ -31,24 +46,33 @@ public string GetCookieValue(string cookieKey)
31
46
return null ;
32
47
return HttpUtility . UrlDecode ( cookieValue ) ;
33
48
}
49
+
50
+ public virtual string GetRequestBodyAsString ( )
51
+ {
52
+ return string . Empty ;
53
+ }
34
54
}
35
55
36
- class HttpResponse : IHttpResponse
56
+ internal class HttpResponse : IHttpResponse
37
57
{
38
- public void SetCookie ( string cookieName , string cookieValue , string domain , DateTime expiration )
58
+ public void SetCookie ( string cookieName , string cookieValue , string domain , DateTime expiration , bool isHttpOnly , bool isSecure )
39
59
{
40
60
if ( HttpContext . Current . Response .
41
61
Cookies . AllKeys . Any ( key => key == KnownUser . QueueITDebugKey ) )
42
62
{
43
63
HttpContext . Current . Response . Cookies . Remove ( KnownUser . QueueITDebugKey ) ;
44
64
}
65
+
45
66
var cookie = new HttpCookie ( cookieName , Uri . EscapeDataString ( cookieValue ) ) ;
67
+
46
68
if ( ! string . IsNullOrEmpty ( domain ) )
47
69
{
48
70
cookie . Domain = domain ;
49
71
}
50
- cookie . HttpOnly = false ;
72
+ cookie . HttpOnly = isHttpOnly ;
73
+ cookie . Secure = isSecure ;
51
74
cookie . Expires = expiration ;
75
+
52
76
HttpContext . Current . Response . Cookies . Add ( cookie ) ;
53
77
}
54
78
}
0 commit comments