Asp.net 在default.aspx中将http重定向到https

Asp.net 在default.aspx中将http重定向到https,asp.net,iis,iis-7,iis-6,Asp.net,Iis,Iis 7,Iis 6,我们的网址是“http://members.XXX.XX,因此我想重定向到https://members.XXX.XX“无论用户类型为“members.XXX.XX”还是”http://members.XXX.XX,这是我的代码,我把它放在default.aspx中 protected void Page_Load(object sender, EventArgs e) { if (Request.IsSecureConnection == false)

我们的网址是“http://members.XXX.XX,因此我想重定向到https://members.XXX.XX“无论用户类型为“members.XXX.XX”还是”http://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将无法工作,而不是在代码中工作,只需让IIS为您处理即可

IIS7
通过IIS需要ssl并捕获错误代码
403.4
,以便为您执行重定向。分步指导

IIS6

您可以创建在端口80上运行的重定向站点来处理重定向到https。阅读更多信息。

您可以添加到
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:"));
    }

我们试过了,我的同事说这会使ELMAH(一个错误记录系统)被禁用,所以..我目前有ELMAH设置,并有重定向。(我使用elmah的基本配置)我只需浏览
https://localhost/elmah.axd
一切正常。为什么上面的代码不起作用?@WiktorZychla不知道,键入的代码没有重定向到https@WiktorZychla我的计算机上没有SSL,但url确实重定向到…,无法显示。马克的方法确实解决了我的问题