Exemplo n.º 1
0
        internal static string Build(FeaturePolicy policy)
        {
            var stringBuilder = new StringBuilder();

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

            if (policy.Accelerometer?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Accelerometer);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Accelerometer)).Append("; ");
            }

            if (policy.AmbientLightSensor?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.AmbientLightSensor);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.AmbientLightSensor)).Append("; ");
            }

            if (policy.Autoplay?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Autoplay);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Autoplay)).Append("; ");
            }

            if (policy.Camera?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Camera);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Camera)).Append("; ");
            }

            if (policy.EncryptedMedia?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.EncryptedMedia);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.EncryptedMedia)).Append("; ");
            }

            if (policy.Fullscreen?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Fullscreen);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Fullscreen)).Append("; ");
            }

            if (policy.Geolocation?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Geolocation);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Geolocation)).Append("; ");
            }

            if (policy.Gyroscope?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Gyroscope);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Gyroscope)).Append("; ");
            }

            if (policy.Magnetometer?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Magnetometer);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Magnetometer)).Append("; ");
            }

            if (policy.Microphone?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Microphone);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Microphone)).Append("; ");
            }

            if (policy.Midi?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Midi);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Midi)).Append("; ");
            }

            if (policy.Payment?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Payment);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Payment)).Append("; ");
            }

            if (policy.PictureInPicture?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.PictureInPicture);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.PictureInPicture)).Append("; ");
            }

            if (policy.Speaker?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Speaker);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Speaker)).Append("; ");
            }

            if (policy.SyncXhr?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.SyncXhr);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.SyncXhr)).Append("; ");
            }

            if (policy.Usb?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Usb);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Usb)).Append("; ");
            }

            if (policy.Vr?.Count > 0)
            {
                stringBuilder.Append(Constants.Features.Vr);
                stringBuilder.Append(" ").Append(string.Join(" ", policy.Vr)).Append("; ");
            }

            return(stringBuilder.ToString().TrimEnd());
        }
        /// <summary>
        /// Adds the Feature-Policy.
        /// </summary>
        /// <param name="policy">The feature policy.</param>
        /// <returns>The current policy builder.</returns>
        public SecurityHeadersPolicyBuilder WithFeaturePolicy(FeaturePolicy policy)
        {
            _policy.FeaturePolicy = new SingleFeaturePolicyHeaderValue(policy);

            return(this);
        }
Exemplo n.º 3
0
        public static IApplicationBuilder UseFeaturePolicy(this IApplicationBuilder app, FeaturePolicy policy)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            return(app.UseMiddleware <Middleware.FeaturePolicy>(policy));
        }