我需要我的ASP.NET Core应用程序在返回https
时返回CreatedAtActionResult
的URL或使用UriHelper.GetDisplayUrl(Request)
从我的API控制器获取当前的请求URL。我不想让我的服务处理https流量,因此不希望使用https重定向。理想情况下,任何生成url / uri的进程都应该能够将架构覆盖为https://
。
背景
我有一个服务在AWS Fargate上的Docker中运行,该服务在负载平衡器后面,该负载终止SSL通信并将请求作为HTTP转发到我的Asp.Net Core API。该API具有返回CreatedAtActionResult
的动作,该Location
形成了http://
标头响应中提供的网址。不幸的是,这些网址是https://
而不是https://
,因为我的服务不知道它应该返回app.Use(async (context, next) =>
{
// Rewrite the inbound Request when running remotely (where this key isn't set)
if (Configuration["RunningEnvironment"] == null)
{
context.Request.IsHttps = true;
context.Request.Scheme = "https";
}
await next.Invoke();
});
。
答案 0 :(得分:0)
我能够通过编写一个使用配置值的自定义中间件来解决此问题,该中间件使用配置值来标识我正在运行的环境,并有选择地更改传入的请求。希望这对下一个遇到这个问题的人有所帮助!
{{1}}