Мне нужно проверить, что наши посетители используют HTTPS.В BasePage я проверяю, приходит ли запрос по HTTPS.Если это не так, я перенаправить обратно с HTTPS.Однако, когда кто-то заходит на сайт и использует эту функцию, я получаю сообщение об ошибке:
System.Web.HttpException: сервер не может добавить заголовок после отправки заголовков HTTP.в System.Web.HttpResponse.AppendHeader (имя строки, строковое значение) в System.Web.HttpResponse.AddHeader (имя строки, строковое значение) в Premier.Payment.Website.Generic.BasePage..ctor ()
Вот код, с которого я начал:
// If page not currently SSL
if (HttpContext.Current.Request.ServerVariables["HTTPS"].Equals("off"))
{
// If SSL is required
if (GetConfigSetting("SSLRequired").ToUpper().Equals("TRUE"))
{
string redi = "https://" +
HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString() +
HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString() +
"?" + HttpContext.Current.Request.ServerVariables["QUERY_STRING"].ToString();
HttpContext.Current.Response.Redirect(redi.ToString());
}
}
Я также попытался добавить это выше (немного, я использовал на другом сайте для аналогичной проблемы):
// Wait until page is copletely loaded before sending anything since we re-build
HttpContext.Current.Response.BufferOutput = true;
Я использую c # в .NET 3.5 на IIS 6.