Делаю так:
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
Response.AddHeader("Content-Type", type);
Response.ContentEncoding = Encoding.Default;
Response.HeaderEncoding = Encoding.Default;
Response.WriteFile(path);
Работает! Но если rar архив (например) нажать левой кнопкой мыши и Открыть, а потом нажать Выход из rara и туже нажать туже ссылку правой кнопкой «Сохранить объект как» то имя файла: getfile.htm (где getfile.aspx — это страница в тело которой и помещается файл). Если согласиться и сохранить, то rar его откроет (тело файла правильное). Теперь если второй раз сделать «Сохранить объект как», то имя файла будет правильное. Если же при открытие странице нажать на ссылку один раз (неважно «Сохранить объект как» или «Открыть») то имя будет правильное. Так почему IE9 при комбинации: «Открыть», «Выход», «Сохранить объект как» выдает в имени файла название страницы? Проверил данный алгоритм на других сайтах — данного эффекта не наблюдается. Значит, неправильно отдаю?
P.S.: в FF, Chrome проблем нет, IE 9.0.8112.16421.
P.S.S.: нашел точно такую же ошибку с именем, уже не у себя, а в крупном проекте написанном под SharePoint