MVC Forcer la redirection vers www avec un filtre

 01/01/2019 |   Admin |  C#


Créer une classe ForceWWW.cs dans le dossier App_Start de votre solution

namespace xxx.Web.App_Start
{
    using System.Web.Mvc;
 
    public class ForceWWW : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.RequestContext.HttpContext.Request.IsLocal)
            {
                string url = filterContext.RequestContext.HttpContext.Request.Url.AbsoluteUri;
                if (!filterContext.RequestContext.HttpContext.Request.Url.AbsoluteUri.Contains("www"))
                {
                    url = url.Replace("http://", "http://www.");
                    url = url.Replace("https://", "https://www.");
                    filterContext.Result = new RedirectResult(url, true);
                }
            }
            base.OnActionExecuting(filterContext);
        }
    }
}

Puis dans la classe FilterConfig.cs, ajouter le filtre fraichement créé

filters.Add(new ForceWWW());