示例#1
0
        public static void SetPolicyMap(AntiXssOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            var map = options.GetPolicyMap();

            _defaultPolicyName = options.DefaultPolicyName;

            _policyMap.Clear();

            foreach (var key in map.Keys)
            {
                var builder = new AntiXssPolicyBuilder(map[key]);
                _policyMap.Add(key, builder.Build());
            }

            if (!IsContainsPolicy(_defaultPolicyName))
            {
                _policyMap.Add(_defaultPolicyName, AntiXssPolicy.DefaultAntiXssPolicy);
            }

            HasInit = true;
        }
        /// <summary>
        /// Add AntiXss
        /// </summary>
        /// <param name="services"></param>
        /// <param name="optionsAction"></param>
        /// <returns></returns>
        public static IServiceCollection AddAntiXss(this IServiceCollection services, Action <AntiXssOptions> optionsAction)
        {
            var options = new AntiXssOptions();

            optionsAction?.Invoke(options);

            // ReSharper disable once RedundantTypeArgumentsOfMethod
            services.AddSingleton <AntiXssOptions>(options);
            services.AddSingleton <IAntiXssPolicyProvider, AntiXssPolicyProvider>();

            services.AddTransient <AntiXss>();

            return(services);
        }
示例#3
0
        //app.UseAntiXssMiddleware();
        public static IApplicationBuilder UseAntiXssMiddleware(this IApplicationBuilder builder, IConfigurationRoot Configuration)
        {
            var options = new AntiXssOptions();

            Configuration.GetSection(nameof(AntiXssOptions)).Bind(options);

            var IsEnabled = (options.Enabled == true) ? true : false;

            if (IsEnabled)
            {
                return(builder.UseMiddleware <AntiXssMiddleware>());
            }

            return(builder);
        }
示例#4
0
 public static void Init(AntiXssOptions options)
 {
     _options = options;
     InternalAntiXssManager.SetPolicyMap(options);
 }
示例#5
0
 /// <summary>
 /// AntiXss policy provider
 /// </summary>
 /// <param name="options"></param>
 public AntiXssPolicyProvider(AntiXssOptions options)
 {
     _options = options ?? throw new ArgumentNullException(nameof(options));
 }