Esempio n. 1
0
        private static IDownload CheckIntegrity(this CorsRequest cors, IDownload download)
        {
            var response  = download.Task.Result;
            var value     = cors.Request.Source?.GetAttribute(AttributeNames.Integrity);
            var integrity = cors.Integrity;

            if (!String.IsNullOrEmpty(value) && integrity != null && response != null)
            {
                var content = new MemoryStream();
                response.Content.CopyTo(content);
                content.Position = 0;

                if (!integrity.IsSatisfied(content.ToArray(), value))
                {
                    response.Dispose();
                    throw new DomException(DomError.Security);
                }

                return(download.Wrap(new DefaultResponse
                {
                    Address = response.Address,
                    Content = content,
                    Headers = response.Headers,
                    StatusCode = response.StatusCode
                }));
            }

            return(download);
        }
Esempio n. 2
0
        private static IDownload CheckIntegrity(this CorsRequest cors, IDownload download)
        {
            var response = download.Task.Result;
            var value = cors.Request.Source?.GetAttribute(AttributeNames.Integrity);
            var integrity = cors.Integrity;

            if (!String.IsNullOrEmpty(value) && integrity != null && response != null)
            {
                var content = new MemoryStream();
                response.Content.CopyTo(content);
                content.Position = 0;

                if (!integrity.IsSatisfied(content.ToArray(), value))
                {
                    response.Dispose();
                    throw new DomException(DomError.Security);
                }

                return download.Wrap(new Response
                {
                    Address = response.Address,
                    Content = content,
                    Headers = response.Headers,
                    StatusCode = response.StatusCode
                });
            }

            return download;
        }