我们的网站地址就像“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将不起作用
答案 0 :(得分:2)
不要在代码中执行它,而是让IIS为您处理它。
<强> IIS7 强>
通过IIS要求ssl并捕获错误代码403.4
以便为您执行重定向。分步指南"IIS7 Redirect HTTP to HTTPS"
<强> IIS6 强>
您可以创建在端口80上运行的重定向站点,以处理重定向到https。阅读更多相关信息"How to Force Redirection From HTTP to HTTPS on IIS 6.0"。
答案 1 :(得分: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:"));
}