Double-têtes reçue du serveur

Double-têtes reçue du serveur

La réponse du serveur de contenu en double-têtes. Ce problème est généralement le résultat d'un problème de configuration de site web ou un proxy. Seul le site internet ou l'administrateur du proxy pouvez résoudre ce problème.

Erreur 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Plusieurs distinctes Content-Disposition des en-têtes reçu. Ce n'est pas autorisé à se protéger contre "HTTP response splitting" des attaques.

J'ai trouvé cette erreur lors de l'exportation au format pdf dans le navigateur chrome.

Response.Buffer = false;
Response.ClearHeaders();
string ext = objProp.PACKAGEFILENAME.Substring(objProp.PACKAGEFILENAME.LastIndexOf("."));
string ext1 = ext.Substring(1);
Response.ContentType = ext1;
Response.AddHeader("Content-Disposition", "target;_blank,attachment; filename=" + objProp.PACKAGEFILENAME);
const int ChunkSize = 1024;
byte[] binary = objProp.PACKAGEDOCUMENT;
System.IO.MemoryStream ms = new System.IO.MemoryStream(binary);
int SizeToWrite = ChunkSize;

for (int i = 0; i < binary.GetUpperBound(0) - 1; i = i + ChunkSize)
{
    if (!Response.IsClientConnected) return;
    if (i + ChunkSize >= binary.Length) SizeToWrite = binary.Length - i;
    byte[] chunk = new byte[SizeToWrite];
    ms.Read(chunk, 0, SizeToWrite);
    Response.BinaryWrite(chunk);
    Response.Flush();
}
Response.Close();

Comment résoudre ce problème?

  • J'ai également trouvé que la virgule dans le nom de fichier afin de lui donner de l'erreur (dans Chrome uniquement). Je pense il doit y avoir une façon de dire que le nom de fichier="abc xyz.pdf" est valide. Je que nous pouvons remplacer la "," avec quelque chose d'autre, mais je veux préserver et de retourner le nom du fichier exactement comme il est. Aucun des autres navigateurs (IE, FireFox, Safari, Opera) j'ai essayé ont ce problème.
  • Donc, il y a un moyen de le laisser encore avoir de virgule dans le nom de fichier. Suffit de citer le nom de fichier. Response.AddHeader("content-disposition", "attachment; filename=\"" + FileNameWithCommas + "\"");
  • Merci @cusman. C'est exactement mon problème - une virgule dans le nom de fichier ET un seul Chrome avait un problème avec ça.
  • Double Possible de Chrome pdf affichage, Double-têtes reçu par le serveur