Ejemplo n.º 1
0
        /// <summary>
        /// 由 CorsCoreHelper 负责初始化
        /// </summary>
        /// <param name="options"></param>
        public static void SetPolicyMap(CorsOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            var map = options.GetPolicyMap();

            _defaultPolicyName = options.DefaultPolicyName;

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

            if (!IsContainsPolicy(_defaultPolicyName))
            {
                _policyMap.Add(_defaultPolicyName, CorsPolicy.DefaultCorsPolicy);
            }

            EnableGlobalCors     = options.EnableGlobalCors;
            GlobalCorsPolicyName = string.IsNullOrWhiteSpace(options.GlobalCorsPolicyName)
                ? options.DefaultPolicyName
                : options.GlobalCorsPolicyName;
        }