Je reçois une exception automatique de la méthode CheckInvalidPathChars()
lorsque je mets un caractère non valide comme <
, >
dans l'URL.Comment faire pour attraper CheckInvalidPathChars() exception
Le chemin est vérifié automatiquement et je voudrais attraper l'exception afin de rediriger l'utilisateur vers la page 404 error
.
Comment puis-je attraper cette exception?
Infodesks:
J'utilise Umbraco 4.9.0
La solution J'ai trouvé:
J'ai créé le fichier Global.asax dans la racine du projet. Ce fichier a, entre autres, la méthode "Application_Error", qui se déclenche lorsqu'il y a un caractère illégal dans l'URL.
J'ai effectué cette méthode avec le code suivant:
protected void Application_Error(object sender, EventArgs e)
{
Server.ClearError();
string errorTemplate = library.RenderTemplate(nodeId);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Length", errorTemplate.Length.ToString());
HttpContext.Current.Response.Write(errorTemplate);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
Hope this helps!
Peut-être que je n'ai pas expliqué le problème correctement. Je sais avec try/catch que je peux contrôler une exception. Le problème est que Umbraco exécute CheckInvalidPathChars() quelque part, et je n'ai aucun moyen d'y mettre un try/catch. Comment puis-je contrôler cela dans ce cas? – jbartolome
Je pense que l'endroit à regarder n'est pas dans le code Umbraco. Il me semble que ASP.NET exécute cette méthode. J'ai pris un coup d'oeil à travers le code source d'Umbraco 4.9.0 et une recherche dans VS n'a rien révélé pour CheckInvalidPatchChars(). Peut-être que la question suivante aidera: http://stackoverflow.com/questions/5082662/how-to-redirect-404-bad-urls-to-the-homepage –
Merci, ça m'a donné l'idée d'utiliser global.asax .cs avec la méthode Application_Error! :) – jbartolome