Я хочу, чтобы перенаправить на страницу, и сила 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?
Спасибо Silky за то, что начали меня.
Я закончил с
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 –
, вероятно, лучше всего пухнуть для DNSSafeHost в этом случае –