302使用未经身份验证的域重定向

时间:2019-03-05 18:36:01

标签: asp.net asp.net-core-mvc

每当我未通过身份验证时,我的asp.net应用程序会将我重定向到日志记录页面。

问题在于响应标头的位置是://mydomain.com/login,但我希望它仅是/login

我正在使用反向代理,并且域名已用计算机名重写。结果是,当您请求://mydomain.com/时,重定向为://machinename/login

我不想公开计算机名称。

是否可以更改设置以解决此问题?

1 个答案:

答案 0 :(得分:0)

您的问题是有关如何在ASP.NET Core中获得真正的外部主机的: 客户仅了解://mydomain.com。并且您的反向代理将请求转发到://machinename(ASP.NET Core网站)。

不确定反向代理的工作方式。但是最好将代理配置为自动设置主机。例如nginx的配置:

proxy_redirect           off;
proxy_set_header         Host                    $host;
proxy_set_header         X-Real-IP               $remote_addr;
proxy_set_header         X-Forwarded-For         $proxy_add_x_forwarded_for;
proxy_set_header         X-Forwarded-Proto       $scheme;

并注册一个中间件来处理Forwarded中的Startup.cs主机。

app.UseForwardedHeaders(new ForwardedHeadersOptions{
    ForwardedHeaders = ForwardedHeaders.XForwardedHost|ForwardedHeaders.XForwardedFor|ForwardedHeaders.XForwardedProto
});

通过这种方式,ASP.NET Core将能够实现真正的主机/端口/方案等