gpt4 book ai didi

c# - 使用 Url.Link 在 Web API 中生成 HTTPS 链接

转载 作者:可可西里 更新时间:2023-11-01 08:42:57 25 4
gpt4 key购买 nike

我需要生成一个指向 ASP.NET Web API 的绝对 URL,以便稍后进行回调/重定向。

可以使用

生成链接
Url.Link("RouteName", new { controller = "Controller", action = "Action" });

这会返回正确的 Url,但是,我需要它始终为 https。 Url.Link 似乎使用当前请求的方案生成一个 url。例如,如果生成 url 的请求类似于 http://www.myhost.com/controller/generateUrl然后 Url.Link 生成一个 http url。如果生成 url 的请求是 https://www.myhost.com/controller/generateUrl然后 Url.Link 生成一个 https url。

url 需要始终使用 https 生成。是否有可以传递给 Url.Link 以实现此目的的参数或路由值?

谢谢。

最佳答案

Url.Link() 似乎不可能

我会检查 HttpRequest 并将其更改为 https 以获取所有 Url.Link() 以返回 https 链接。

类似于:

        if (Url.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
var secureUrlBuilder = new UriBuilder(Url.Request.RequestUri);
secureUrlBuilder.Scheme = Uri.UriSchemeHttps;
Url.Request.RequestUri = new Uri(secureUrlBuilder.ToString());
}

// should now return https
Url.Link("RouteName", new { controller = "Controller", action = "Action" });

关于c# - 使用 Url.Link 在 Web API 中生成 HTTPS 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24247402/

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