2012-06-19 2 views
1

У меня есть хостинг с Godaddy, и я привез сертификат ssl с моим доменом. Есть ли простой способ иметь страницу login.aspx и страницу register.aspx перейти на https? Я не хочу явно указывать перенаправление («https: //domain/login.aspx»). Спасибо за любую помощь.регистрация и вход в систему страницы https asp.net 4.0

+0

Ручное перенаправление, вероятно, самый надежный способ. Почему это вам не подходит? –

ответ

1

Самый простой способ - изменить эти страницы со следующим кодом (перенаправляет на https если не работает локально, а не защищенное соединение):

if (!Request.IsLocal && !Request.IsSecureConnection) 
{ 
    string redirectUrl = Request.Url.ToString().Replace("http:", "https:"); 
    Response.Redirect(redirectUrl); 
} 
0

Часто самое простое решение лучше, но если вы хотите получить орехи ...

вы можете написать модуль HTTP, чтобы убедиться, что список конкретных страниц перенаправляются на SSL.

public class EnsureSslModule : IHttpModule 
{ 
    private static readonly string[] _pagesToEnsure = new[] { "login.aspx", "register.aspx" }; 

    public void Dispose() 
    { 
    } 

    public void Init(HttpApplication context) 
    { 
     context.BeginRequest += OnBeginRequest; 
    } 

    public void OnBeginRequest(object sender, EventArgs e) 
    { 
     var application = (HttpApplication)sender; 
     var context = application.Context; 

     var url = context.Request.RawUrl; 

     if (!context.Request.IsSecureConnection 
       && _pagesToEnsure.Any(page => url.IndexOf(page, StringComparison.InvariantCultureIgnoreCase) > -1)) 
     { 
      var builder = new UriBuilder(url); 

      builder.Scheme = Uri.UriSchemeHttps; 

      context.Response.Redirect(builder.Uri 
       .GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, 
           UriFormat.UriEscaped), true); 
     } 
    } 
} 
Смежные вопросы