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) =>
                {
                    httpContext.Response.Headers.Append("Server-Version", CoreHelpers.GetVersion());
                    return(Task.FromResult(0));
                }, null);

                await next.Invoke();
            });
        }
Esempio n. 2
0
        public static void UseDefaultMiddleware(this IApplicationBuilder app, IHostingEnvironment env)
        {
            // Add version information to response headers
            app.Use(async(httpContext, next) =>
            {
                httpContext.Response.OnStarting((state) =>
                {
                    httpContext.Response.Headers.Append("Server-Version", CoreHelpers.GetVersion());
                    return(Task.FromResult(0));
                }, null);

                await next.Invoke();
            });
        }
Esempio n. 3
0
        public static void UseDefaultMiddleware(this IApplicationBuilder app,
                                                IHostingEnvironment env, GlobalSettings globalSettings)
        {
            string GetHeaderValue(HttpContext httpContext, string header)
            {
                if (httpContext.Request.Headers.ContainsKey(header))
                {
                    return(httpContext.Request.Headers[header]);
                }
                return(null);
            }

            // Add version information to response headers
            app.Use(async(httpContext, next) =>
            {
                using (LogContext.PushProperty("IPAddress", httpContext.GetIpAddress(globalSettings)))
                    using (LogContext.PushProperty("UserAgent", GetHeaderValue(httpContext, "user-agent")))
                        using (LogContext.PushProperty("DeviceType", GetHeaderValue(httpContext, "device-type")))
                            using (LogContext.PushProperty("Origin", GetHeaderValue(httpContext, "origin")))
                            {
                                httpContext.Response.OnStarting((state) =>
                                {
                                    httpContext.Response.Headers.Append("Server-Version", CoreHelpers.GetVersion());
                                    return(Task.FromResult(0));
                                }, null);
                                await next.Invoke();
                            }
            });
        }