1

我们的网站地址就像“http://members.XXX.XX”,所以无论用户输入“members.XXX.XX”还是“http:”,我都想重定向到“https://members.XXX.XX” //members.XXX.XX",这是我的代码,我把它放在default.aspx中

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.IsSecureConnection == false)
        {
            Response.Redirect(Request.Url.ToString().Replace("http://", "https://"));
        }

        if (!Request.Url.ToString().StartsWith("http://") || !Request.Url.ToString().StartsWith("https://"))
            Response.Redirect("https://" + Request.Url.ToString());

        Response.Redirect("~/pages/login.aspx");
    }

哪个不行,谁能帮忙?非常感谢

编辑:我们没有在 IIS 中这样做,因为我们存储了 ELMAH,它是一个错误记录系统。我的同事说,如果我们这样做,ELMAH 将无法工作

4

2 回答 2

2

无需在代码中执行此操作,只需让 IIS 为您处理即可。

IIS7
通过 IIS 需要 ssl 并捕获错误代码403.4来为您进行重定向。分步指南“IIS7 将 HTTP 重定向到 HTTPS”

IIS6
您可以创建一个在端口 80 上运行的重定向站点来处理您对 https 的重定向。阅读有关它的更多信息“如何在 IIS 6.0 上强制从 HTTP 重定向到 HTTPS”

于 2012-06-27T17:19:51.597 回答
1

您可以添加到Global.asax

    protected void Application_BeginRequest()
    {

        if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
            Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
    }
于 2017-08-26T11:29:52.730 回答