コード例 #1
0
        private static IFluentCspOptions UseCspScripts(this IFluentCspOptions configurer, WebOptions.HostingOptions.CspOptions.CspDirectiveScripts cspDirective)
        {
            if (configurer == null)
            {
                throw new ArgumentNullException(nameof(configurer));
            }

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

            if (!cspDirective.IsEnabled)
            {
                return(configurer);
            }

            configurer
            .ScriptSources(x =>
            {
                if (cspDirective.IsNone)
                {
                    x.None();
                }
                else
                {
                    if (cspDirective.IsSelf)
                    {
                        x.Self();
                    }

                    if (cspDirective.IsUnsafeEval)
                    {
                        x.UnsafeEval();
                    }

                    if (cspDirective.IsUnsafeInline)
                    {
                        x.UnsafeInline();
                    }

                    if (cspDirective.StrictDynamic)
                    {
                        x.StrictDynamic();
                    }

                    if (cspDirective.Sources.Any())
                    {
                        x.CustomSources(cspDirective.Sources);
                    }
                }
            });

            return(configurer);
        }