Pergunta

Eu sei o caminho mais fácil para chegar a uma página de SSL em ASP.NET MVC - através do [RequireSSL] atributo mas eu estou um pouco confuso com a melhor maneira de fazer o contrário.

Eu tenho muitas ligações no meu site em uma barra de cabeçalho ea maioria dessas ligações não requerem SSL e eu não quero ainda usam SSL.

O projeto futuros torna muito fácil para redirecionar automaticamente para uma página SSL com [RequireSSL(Redirect=true)], mas ele não parecem torná-lo fácil de sair deste contexto e automaticamente redirecionamento de volta para http.

O que eu estou ausente?

Foi útil?

Solução

Você não está faltando alguma coisa; não há nenhuma funcionalidade out-of-the-box para isso. Você pode facilmente criar seus próprios tomando fonte RequireSslAttribute e modificá-lo .

Outras dicas

Resposta de uma pergunta dupe em outro lugar:

Como passo a partir https para o modo http em asp.net mvc.

ATENÇÃO : Se escolher usar essa abordagem seu cookie de autenticação serão enviados através de texto simples após a mudança de volta para HTTP, e pode potencialmente ser roubado e usado por outra pessoa. Veja este . Em outras palavras - se você estivesse usando isso para um site do banco que você precisa ter certeza de que a mudança para http faria início registrar o usuário para fora

.
public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }

Este vale a pena leitura (epecially a perceber as implicações da mudança descuidadamente volta para http de https de segurança:

Parcialmente SSL Secured Aplicativos Web Com ASP.NET - não MVC específico, mas preocupações de segurança relevantes

site SSL parcial com ASP.NET MVC - MVC amigável

É uma questão bastante complicada geral. Ainda não encontrei uma verdadeira solução para tudo o que eu quero fazer, mas pensei que estes artigos podem ajudar os outros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top