Example #1
0
 /// <inheritdoc />
 protected override void EvaluateHttpsRequest(HttpContext context, CustomHeadersResult result)
 {
     if (context.Response.ContentType?.StartsWith("text/html") ?? true)
     {
         base.EvaluateHttpsRequest(context, result);
     }
 }
Example #2
0
        public void Default_Constructor()
        {
            // Arrange & Act
            var result = new CustomHeadersResult();

            Assert.Empty(result.SetHeaders);
            Assert.Empty(result.RemoveHeaders);
        }
 private void EvaluateRequest(HttpContext context, CustomHeadersResult result)
 {
     if (string.IsNullOrEmpty(Value))
     {
         result.RemoveHeaders.Add(Header);
     }
     else
     {
         result.SetHeaders[Header] = Value;
     }
 }
Example #4
0
        ///<inheritdoc />
        public void Apply(HttpContext context, CustomHeadersResult result)
        {
            var request = context?.Request;

            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (request.IsHttps)
            {
                EvaluateHttpsRequest(context, result);
            }
            else
            {
                EvaluateHttpRequest(context, result);
            }
        }
Example #5
0
        /// <summary>
        /// Adds and removes the required headers to the given <paramref name="response"/>.
        /// </summary>
        /// <param name="response">The <see cref="HttpResponse"/> associated with the current call.</param>
        /// <param name="result">The <see cref="CustomHeadersResult"/> used to read the allowed values.</param>
        public virtual void ApplyResult(HttpResponse response, CustomHeadersResult result)
        {
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            var headers = response.Headers;

            foreach (var headerValuePair in result.SetHeaders)
            {
                headers[headerValuePair.Key] = headerValuePair.Value;
            }

            foreach (var header in result.RemoveHeaders)
            {
                headers.Remove(header);
            }
        }
Example #6
0
        /// <summary>
        /// Evaluates the given <paramref name="policies"/> using the passed in <paramref name="context"/>.
        /// </summary>
        /// <param name="context">The <see cref="HttpContext"/> associated with the call.</param>
        /// <param name="policies">The <see cref="HeaderPolicyCollection"/> containing policies to be evaluated.</param>
        /// <returns>A <see cref="CustomHeadersResult"/> which contains the result of policy evaluation and can be
        /// used by the caller to set appropriate response headers.</returns>
        public virtual CustomHeadersResult EvaluatePolicy(HttpContext context, HeaderPolicyCollection policies)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (policies == null)
            {
                throw new ArgumentNullException(nameof(policies));
            }

            var result = new CustomHeadersResult();

            foreach (var policy in policies.Values)
            {
                policy.Apply(context, result);
            }

            return(result);
        }
 /// <inheritdoc />
 protected override void EvaluateHttpsRequest(HttpContext context, CustomHeadersResult result)
 {
     EvaluateRequest(context, result);
 }
 /// <inheritdoc />
 protected override void EvaluateHttpRequest(HttpContext context, CustomHeadersResult result)
 {
     return;
 }
Example #9
0
 /// <summary>
 /// Apply the header to the result when the provided <paramref see="context" />  has an secure request
 /// </summary>
 /// <param name="context">The <see cref="HttpContext"/> associated with the current call.</param>
 /// <param name="result">The <see cref="CustomHeadersResult"/> to update.</param>
 protected virtual void EvaluateHttpsRequest(HttpContext context, CustomHeadersResult result)
 {
     result.SetHeaders[Header] = Value;
 }
Example #10
0
 private void EvaluateRequest(HttpContext context, CustomHeadersResult result)
 {
     result.RemoveHeaders.Add(Header);
 }