在HTTP.net Mvc

时间:2017-04-24 19:24:34

标签: c# asp.net asp.net-mvc-4 ssl https

我最近将我的Windows服务器设置为使用SSL证书在HTTPS上运行。我将HTTP请求重定向到https时遇到问题 我在Global.asax

中添加了这段代码
 protected void Application_BeginRequest()
    {

        if (!Context.Request.IsSecureConnection))
            Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
    }

但只是GET请求重定向和POST请求失败。 请帮帮我。

2 个答案:

答案 0 :(得分:1)

最好的答案是不要根据需要重定向,而是重定向到将提交到HTTPS URI的引荐来源的安全版本。

  1. 重定向POST请求不会转发数据。您的请求可能已经以这种方式重定向,并且由于表单值为NULL,您的代码会引发错误
  2. 最初提交的数据在最初发布时未加密。

答案 1 :(得分:0)

理想情况下,您不应将HTTP重定向到HTTPS以获取POST请求。只是不允许通过HTTP发出POST请求。您应该知道POST请求不能用于书签或无法缓存。

因此没有意义将POST请求重定向到HTTPS。