none
HTTP para HTTPS, forçar que paginas funcionem apenas no HTTPS RRS feed

  • Pergunta

  • ola pessoal

    eu tenho algumas paginas que estao em HTTP que preciso que qdo acessadas sejam HTTPS. como eu faco?

    na verdade eu preciso forçar para que sempre sejam acessadas em HTTPS e NUNCA em HTTP.

    obrigado

    abs


    Carlos Eduardo Barbosa
    Analista de Sistema
    Business Intelligence
    WEB Intelligence

    carlos.ed.b@hotmail.com

    @carlos_ed_b

    Mercúrio – Comunicação Digital

    terça-feira, 21 de fevereiro de 2012 15:20

Todas as Respostas

  • Olá Carlos,

    Tente incluir isso no seu global.asax

    protected void Application_BeginRequest(Object sender, EventArgs e)

                    

    {
            if ( !Request.IsSecureConnection)
            {
                    string path = string.Format("https{0}", Request.Url.AbsoluteUri.Substring(4));

                    Response.Redirect(path);
            }
    }

    Caso queria fazer uma leitura complementar: 
    http://jonlanceley.blogspot.com/2011/07/http-to-https-flipper-for-aspnet-web.html

    Bom, espero ter ajudado. Se foi útil, por favor marque-a como resposta.

    []'z

    terça-feira, 21 de fevereiro de 2012 17:02
  • nao existe uma forma de informar no Controler isso?

    como faco quando verifico a permissão do usuário.

            [Authorize]
            public ActionResult Create()
            {
                return View();
            }

    ai no lugar do "[Authorize]" eu colocaria HTTPS por exemplo.

    nao existem uma forma de fazer como eu comentei?

    obrigado

    abs


    Carlos Eduardo Barbosa
    Analista de Sistema
    Business Intelligence
    WEB Intelligence

    carlos.ed.b@hotmail.com

    @carlos_ed_b

    Mercúrio – Comunicação Digital

    terça-feira, 21 de fevereiro de 2012 17:13
  • Carlos, você tem disponível o Action Filter RequireHttps.

    [RequireHttps]
    public class TesteController : Controller
    {
     ...
    }

    Se precisar manipular a url de alguma maneira diferente, implemente sua própria Action Filter utilizando a mesma idéia do Bruno.

    Veja um exemplo:

    public class OnlySSL : ActionFilterAttribute
        {
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                var _response = filterContext.HttpContext.Response;
                var _request = filterContext.HttpContext.Request;
    
                if (!_request.IsSecureConnection)
                {
                    var _uriBuilder = new UriBuilder(_request .Url)
                    {
                        Scheme = Uri.UriSchemeHttps,
                        Port = 443
                    };
                    _response.Redirect(_uriBuilder.Uri.ToString());
                }
    
                base.OnActionExecuting(filterContext);
            }
        }

    Em seu controller ou action:

    [Authorize, OnlySSL]
    public ActionResult Create()
    {
      return View();
    }


    (Se a resposta ajudou, marque como útil)

    quarta-feira, 22 de fevereiro de 2012 10:15