在我们的网站上,我们有F5的Big IP处理SSL加密和解密,并将请求发送到我们服务器上的端口80。
由于这是我们使用how做的第一个站点,我很好奇它将如何处理视图中的@ ASP.NET。令人惊讶的是,它将https://.在我们的CI环境中(不执行SSL),它将http://放在所有链接上。
我们还有其他的链接来引入javascript文件、css文件和图片,并且我们使用了一个由F5添加到请求中的自定义HTTP头,这样我们就可以知道。
谁知道ASP.NET MVC3如何知道链接是否应该有http://或https://,,因为我不希望有一个自定义的HTTP头进入,如果有一种方法我们可以使用相同的方法。
发布于 2011-02-21 10:02:46
如果您在控制器中使用RequireHttpsAttribute,这是一种方法。因为如果使用Http调用,它将重定向到Https。
另一种可能是您的情况的重要方式是,它使用当前请求路径(Request.AbsoluteUrl)来创建链接,因此,如果使用HTTPs调用原始页面,则链接将是Https (快速查看代码)。
因此,可能原始URL将到达IIS的端口80,但指示该URL包含Https。尝试输出类似于Request.ServerVariables[ "HTTP_URL" ]的内容以进行确认。我假设在您的案例中使用的是您所描述的Request.ServerVariables["HTTPS"]。
https://stackoverflow.com/questions/5061555
复制相似问题