1

在我们的网站上,我们有 F5 的 Big IP 处理 SSL 加密和解密,并将请求发送到我们服务器上的 80 端口。

由于这是我们使用 ASP.NET MVC 做的第一个站点,我很好奇它将如何处理视图中的@HTML.ActionLink。令人惊讶的是,它正在输入 https://。在我们的 CI 环境(不使用 SSL)上,它会将 http:// 放在所有链接上。

我们还有其他链接可以引入 javascript 文件、css 文件和图像,并且我们正在使用 F5 添加到请求中的自定义 HTTP 标头,以便我们知道。

有谁知道 ASP.NET MVC3 如何知道链接是否应该有 http:// 或 https://,因为我宁愿没有自定义 HTTP 标头进入,如果有办法我们可以使用相同的方法.

4

1 回答 1

0

如果您RequireHttpsAttribute在控制器中使用,这是一种方法。因为如果使用 Http 调用,它将重定向到 Https。

可能是您的情况的另一种重要方式是它使用当前请求路径(Request.AbsoluteUrl)来制作链接,因此,如果使用 HTTPS 调用原始页面,则链接将是 Https(从快速查看代码) .

因此,也许原始 URL 将到达 IIS 的 80 端口,但表明该 URL 包含 Https。尝试输出类似Request.ServerVariables[ "HTTP_URL" ]确认的内容。我假设Request.ServerVariables["HTTPS"]在你描述的情况下。

于 2011-02-21T02:02:45.887 回答