我想重定向到一个网页,和力的https:力HTTPS在Response.Redirect的
如
Response.Redirect("~/Login.aspx");
我想重定向到
https://myserver/Login.aspx
我怎么能强迫HTTPS?
我想重定向到一个网页,和力的https:力HTTPS在Response.Redirect的
如
Response.Redirect("~/Login.aspx");
我想重定向到
https://myserver/Login.aspx
我怎么能强迫HTTPS?
谢谢柔滑让我开始。
我已经结束了与
var url = String.Format("https://{0}{1}",
Request.ServerVariables["HTTP_HOST"] ,
ResolveUrl("~/Login.aspx"));
Response.Redirect(url);
我喜欢从Page_Load中在我想迫使HTTPS的任何页面调用此方法。具体来说,在用户可以输入密码的任何页面上,例如登录,注册和密码重置页面。
protected void ForceHTTPS()
{
string serverName = Request.ServerVariables["SERVER_NAME"];
string pagePath = Page.AppRelativeVirtualPath.Replace("~", "");
string queryString = Request.Url.Query;
if (serverName != "localhost" && !Request.IsSecureConnection)
{
Response.Redirect("https://" + SECURE_DOMAIN + pagePath + queryString);
}
}
我使用的原因预定义的SECURE_DOMAIN不变,而不是仅仅读出来的Request.ServerVariables的[“SERVER_NAME”]是,如果有一个我们的SSL证书只能“WWW”。在域名的开头,所以我想确保强制这个域名,以防用户使用不带www的域名浏览网站,或者可能使用了其他域名别名。
而且,如果服务器名称为“localhost”,则不会执行重定向,以便代码在Visual Studio中运行时也可以在我的开发环境中使用。
请注意,您可以通过以下方式获取主机:this.Request.Url.Host – 2009-08-17 11:25:27
在这种情况下可能最适合DNSSafeHost – 2009-08-17 11:29:33