示例#1
0
        private void AddClientDependencies(IClientDependencySet dependencySet)
        {
            foreach (var cssFileDependency in dependencySet.RequiresCss())
            {
                if (String.IsNullOrEmpty(cssFileDependency.MediaQueryAlias))
                {
                    skinSmall.FileList.Add(cssFileDependency.CssFileAlias);
                }
                if (cssFileDependency.MediaQueryAlias == skinMedium.MediaConfiguration)
                {
                    skinMedium.FileList.Add(cssFileDependency.CssFileAlias);
                }
                if (cssFileDependency.MediaQueryAlias == skinLarge.MediaConfiguration)
                {
                    skinLarge.FileList.Add(cssFileDependency.CssFileAlias);
                }
            }

            foreach (var scriptDependency in dependencySet.RequiresJavaScript())
            {
                skinScript.FileList.Add(scriptDependency.JsFileAlias);
            }

            var csp       = new ContentSecurityPolicyHeaders(Response.Headers);
            var cspConfig = new ContentSecurityPolicyFromConfig();

            foreach (var contentSecurityPolicy in dependencySet.RequiresContentSecurityPolicy())
            {
                csp.AppendPolicy(cspConfig.Policies[contentSecurityPolicy.Alias]);
            }
            csp.UpdateHeaders();
        }
示例#2
0
        /// <summary>
        /// Assess whether an instance of <see cref="IClientDependencySet"/> has requirements for the current request, and adds those requirements to the combined set
        /// </summary>
        /// <param name="dependencySet"></param>
        public void EvaluateDependencySet(IClientDependencySet dependencySet)
        {
            if (dependencySet == null)
            {
                throw new ArgumentNullException(nameof(dependencySet));
            }

            if (dependencySet.IsRequired())
            {
                _requiredCss.AddRange(dependencySet.RequiresCss());
                _requiredJavaScript.AddRange(dependencySet.RequiresJavaScript());
                _requiredContentSecurityPolicy.AddRange(dependencySet.RequiresContentSecurityPolicy());
            }
        }