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(); }
/// <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()); } }