8
votes

Comment puis-je faire le contraire de [requishttps (redirect = true)] dans asp.net mvc

Je connais le moyen facile d'accéder à une page SSL dans ASP.NET MVC - via [ContreSessL] Attribut mais je suis un peu confus à la meilleure façon de faire le contraire.

J'ai de nombreux liens sur mon site dans une barre d'en-tête et la plupart de ces liens n'ont pas besoin de SSL et je ne veux toujours pas utiliser SSL.

Le projet à terme est très facile de rediriger automatiquement à une page SSL avec [requisessl (redirect = true)] , mais cela ne semble pas faciliter la sortie de ce contexte et automatiquement Rediriger dos à http.

Qu'est-ce que je manque?


1 commentaires

Notez que cela a été renommé à REQRESTHTTPS dans MVC 2


3 Réponses :


4
votes

Vous ne manquez rien; Il n'y a pas de fonctionnalité hors de la case pour cela. Vous pouvez facilement créer le vôtre en prenant la source de la requête et la modifier .


2 commentaires

Est-ce que ça a du sens de faire ça? Je ne peux voir aucun problème avec moi-même, mais alors cela me laisse me demander pourquoi ce n'est pas une fonctionnalité standard. Suis-je pour obtenir ces ennuyeux "Vous avez été redirigé vers une page d'insécurité" des erreurs?


Ce n'est pas une caractéristique standard car il n'y a pas assez d'incitation à l'inclure. De même, [requisseSL] n'a pas été déplacé hors de l'avenir et dans le principal binaire parce que même s'il est testé, il n'est pas encore passé de spécification, d'examen et de documentation. Si vous êtes préoccupé par les avertissements, il est peut-être préférable de générer des liens HTTP au lieu des liaisons HTTPS en premier lieu. Il existe des surcharges html.actionLink () qui acceptent un protocole comme paramètre.



0
votes

Ceci vaut la peine d'être lu (en fonction de la réalisation des implications de sécurité de la commutation négligente vers http à partir de https :

Applications Web sécurisées partiellement SSL avec ASP.NET - non spécifiques spécifiques à MVC, mais pertinentes préoccupantes

Site Web partiel SSL avec ASP.NET MVC - MVC amical

C'est une question assez compliquée dans l'ensemble. N'avez toujours pas trouvé une véritable solution à tout ce que je veux faire, mais que ces articles peuvent aider les autres.


0 commentaires

1
votes

Réponse d'une question DUPE ailleurs:

Comment sortir de HTTPS au mode HTTP à ASP.NET MVC. P>

ATTENTION STRUT>: Si vous choisissez d'utiliser cette approche votre autorisation Cookie sera envoyé sur du texte brut après la mise en route à HTTP et peut être potentiellement volé et utilisé par quelqu'un d'autre. Voir ceci . En d'autres termes - si vous utilisiez ceci pour un site de banque, vous devez vous assurer que la commutation à HTTP serait d'abord forte> journal de l'utilisateur. P>

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);
        }
    }


0 commentaires