每当我未通过身份验证时,我的asp.net应用程序会将我重定向到日志记录页面。
问题在于响应标头的位置是://mydomain.com/login
,但我希望它仅是/login
。
我正在使用反向代理,并且域名已用计算机名重写。结果是,当您请求://mydomain.com/
时,重定向为://machinename/login
。
我不想公开计算机名称。
是否可以更改设置以解决此问题?
答案 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将能够实现真正的主机/端口/方案等