У меня проблема, когда при потоковой передаче офисных документов с SQL Server диалоговое окно аутентификации запрашивает учетные данные, даже если пользователь прошел аутентификацию с помощью базовой аутентификации в браузере. Нажатие кнопки «Отмена» в диалоговом окне аутентификации по-прежнему позволяет правильно открывать документ.
Цель состоит в том, чтобы предотвратить отображение диалогового окна аутентификации. Веб-сервер находится в нашей демилитаризованной зоне, а ящик SQL Server находится внутри организации. В Active Directory в нашей среде Dev я смог изменить делегирование веб-сервера на kerberos (доверять этому компьютеру любые серверы), и диалоговое окно аутентификации исчезнет. Меня беспокоит, является ли это правильным подходом с точки зрения безопасности. Каков правильный и наиболее безопасный способ предотвратить диалог авторизации, какой бы подход ни потребовался, мы должны согласовать его с нашей операционной группой.
Вот заголовок ответа и код, применяемый в настоящее время (на C #), потенциально офисные документы могут иметь дополнительные требования, которые я неправильно настроил.
byte[] b = rda.Attachment;
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("Content-Disposition", "filename=" + rda.UploadedFilename);
Response.ContentType = mime;
Response.BinaryWrite(b);
Response.End();
return File(b, mime);
Любые мысли были бы полезны.