Como eu faço o oposto de [RequireHttps (Redirect = true)] em ASP.NET MVC
-
18-09-2019 - |
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?
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.