gpt4 book ai didi

c# - UriHelper 如何获取生产 url 路径

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:11 25 4
gpt4 key购买 nike

var displayUrl = UriHelper.GetDisplayUrl(Request);
var urlBuilder = new UriBuilder(displayUrl) { Query = null, Fragment = null };

string _activation_url = urlBuilder.ToString().Substring(0, urlBuilder.ToString().LastIndexOf("/")) +"/this_is_my_link.html";

我希望获得正确的 uri 生产路径,但我仍然得到

http://localhost:5000/api/mdc/this_is_my_link.html

我部署在centos 7上

请帮帮我..

谢谢

最佳答案

如果您使用反向代理,您应该阅读 this guide来自微软。

基本上,您的反向代理应该向您的 ASP.NET Core 应用程序提供这些 header :

  • X-Forwarded-For - 客户端 IP
  • X-Forwarded-Host - 来自客户端的 Host header (例如 www.example.com:80)
  • X-Forwarded-Proto - 协议(protocol)(例如 HTTPS)

然后您需要配置您的 ASP.NET Core 应用程序以接受它们。您可以调用 app.UseForwardedHeaders() Startup 的 Configure 方法中的方法。

By default (如果我正确阅读文档)UseForwardedHeaders(如上调用)将接受 X-Forwarded-ForX-Forwarded-Proto来自 localhost 反向代理。

如果你的情况比这更复杂,你必须配置你想要的 header /可信的反向代理:

var forwardedOptions = new ForwardedHeadersOptions()
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto // allow for, host, and proto (ForwardedHeaders.All also works here)
};

// if it's a single IP or a set of IPs but not a whole subnet
forwardedOptions.KnownProxies.Add(IPAddress.Parse("192.168.0.5"));

// if it's a whole subnet
forwardedOptions.KnownNetworks.Add(new IPNetwork("192.168.0.1", 24)); // 192.168.0.1 - 192.168.0.254

app.UseForwardedHeaders(forwardedOptions);

另请注意,根据您使用的反向代理,您可能需要在反向代理上进行配置

关于c# - UriHelper 如何获取生产 url 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com