Example #1
0
        public static void UseDefaultMiddleware(this IApplicationBuilder app, IHostingEnvironment env)
        {
            if (!env.IsDevelopment())
            {
                // Adjust headers for proxy.
                // ref: https://github.com/aspnet/Docs/issues/2384
                var forwardOptions = new ForwardedHeadersOptions
                {
                    ForwardedHeaders      = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
                    RequireHeaderSymmetry = false
                };
                forwardOptions.KnownNetworks.Clear();
                forwardOptions.KnownProxies.Clear();
                app.UseForwardedHeaders(forwardOptions);
            }

            // Add version information to response headers
            app.Use(async(httpContext, next) =>
            {
                httpContext.Response.OnStarting((state) =>
                {
                    var info = CoreHelpers.GetVersionInfo();
                    httpContext.Response.Headers.Append("Server-Version", info.version);
                    httpContext.Response.Headers.Append("Server-Version-Weight", info.versionWeight.ToString());
                    return(Task.FromResult(0));
                }, null);

                await next.Invoke();
            });
        }