我使用这个简单的代码将http重定向到我的结算目标网页上的https:
if (!Request.IsSecureConnection)
{
// send user to SSL
string serverName =HttpUtility.UrlEncode(Request.ServerVariables["SERVER_NAME"]);
string filePath = Request.FilePath;
Response.Redirect("https://" + serverName + filePath);
}
我还需要它来检查并添加www到网址,如果它不在网址中。我需要在此代码中添加什么才能完成此任务?
答案 0 :(得分:1)
像这样:
if (!serverName.StartsWith("www."))
serverName = "www." + serverName;
答案 1 :(得分:0)
以下代码假定服务器名称不以“www”开头。然后补救措施是在“www。”之前预先填写当前服务器名称。
if (!Request.IsSecureConnection)
{
// send user to SSL
string serverName = Request.ServerVariables["SERVER_NAME"];
if (!serverName.ToLowerCaseInvariant().StartsWith("www.")) {
serverName = string.Format("www.{0}", serverName);
}
string filePath = Request.FilePath;
Response.Redirect("https://" + serverName + filePath);
}
就个人而言,我不喜欢这种做事方法。我通常创建一个名为SecureDomain
的设置,然后使用逻辑来验证当前的ServerName是否与之匹配。这样的事情。
// Suppose the value of GlobalAppSettings.SecureDomain
// is something like www.securestore.com
if (!Request.IsSecureConnection)
{
// send user to SSL
string serverName = Request.ServerVariables["SERVER_NAME"];
if (string.Compare(serverName, GlobalAppSettings.SecureDomain, true) != 0) {
serverName = GlobalAppSettings.SecureDomain;
}
string filePath = Request.FilePath;
Response.Redirect("https://" + serverName + filePath);
}