Ah à résoudre ce problème, mon esprit est complètement occupé. Quand j'inscris mon httpmodule, je reçois une erreur non trouvée, sinon tout fonctionne comme un charme.ASP.NET MVC + IHttpModule = Non trouvé
Voici mon HttpModule
public class UrlNormalizerModule : HttpModuleBase {
protected override void OnBeginRequest(HttpContextBase context) {
var originUrl = HttpContext.Current.Request.Url.ToString();
var normalizedUrl = originUrl.NormalizeUrl(false);
if (string.Compare(originUrl, normalizedUrl) != 0) {
var response = context.Response;
response.StatusCode = (int) HttpStatusCode.MovedPermanently;
response.Status = "301 Moved Permanently";
response.RedirectLocation = normalizedUrl;
response.SuppressContent = true;
response.End();
}
}
}
Comment module inscrire dans Web.config
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlNormalizerModule" />
<add name="UrlNormalizerModule" type="MagicByte.Web.Modules.UrlNormalizerModule, MagicByte.Web" />
</modules>
</system.webServer>
MISE À JOUR {} temporairement le problème est résolu
Hm ... Je viens manié tous les événements de HttpApplication comme ci-dessous
context.AuthenticateRequest +=
(sender, e) => OnAuthenticateRequest(new HttpContextWrapper(((HttpApplication) sender).Context));
Je ne sais pas pourquoi mais au-dessus du problème résolu quand j'ai manipulé seulement quelques-uns des événements importants tels BeginRequest
. Alors, quel est vraiment un problème parce que?
Merci Darin, mais n'a toujours pas de travaux! – Sadegh