2010-12-14 3 views

Répondre

2

Tout ce qui est vraiment nécessaire est de supprimer l'en-tête Content-Length erronée, mais ce n'est pas autorisé dans IIS6. Je ne suis pas sûr d'IIS7 en mode pipeline intégré. Pour toute réponse utilisant votre filtre, appliquez cette mise à jour aux en-têtes. L'idée est d'obtenir le type de contenu (pour ne pas casser les réponses non textuelles) et tous les cookies présents (pour ne pas casser l'authentification), effacer tous les en-têtes (pour effacer la longueur du contenu), puis définir le type de contenu et les cookies à nouveau. Nous appliquons notre filtre dans l'événement HttpApplication.ReleaseRequestState, puis effectuons le traitement suivant. YMMV.

HttpApplication app = (HttpApplication)sender; 
string ct = app.Response.ContentType; 
HttpCookie[] cookies = new HttpCookie[app.Response.Cookies.Count]; 
app.Response.Cookies.CopyTo(cookies, 0); 

app.Response.ClearHeaders(); 

app.Response.ContentType = ct; 
foreach (HttpCookie cookie in cookies) { app.Response.Cookies.Add(cookie); }