尝试使用 Edge 通过 HTTP 下载文件时隐藏 HTTPS 警告

Posted

技术标签:

【中文标题】尝试使用 Edge 通过 HTTP 下载文件时隐藏 HTTPS 警告【英文标题】:Hide HTTPS warning when trying to download files over HTTP with Edge 【发布时间】:2022-01-13 21:17:06 【问题描述】:
public class FilesController : ControllerBase
        
    [HttpGet]
    [Route("api/Files/DownloadFile/ProductID/FileName/UserID")]
    public FileResult DownloadFile(int ProductID, string FileName, int UserID)
    
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet);
    

大家好,我正在使用 API 下载文件。在我的 blazor 服务器应用程序(客户端)中,当用户尝试下载任何文件(例如 .xlsx 或 .ppt 文件)时,它可以在 Chrome 和 Firefox 中运行,但在Microsoft Edge 的情况下,它给了我“pptx 文件无法安全下载”。

我的问题,我可以在 app.settings 或 web.config 中添加任何配置来绕过 SSL/TLS 问题吗?

打开查看错误信息:

【问题讨论】:

“API 使用的是 Http 而不是 HTTPS” - 为什么? 然后使用 HTTPS。否则你做的任何事情都是不安全的。误差相当准确。我很确定 Chrome 和 Firefox 也不满意,要么你没有注意到警告,要么你使用了从互联网上截断的过时版本,他们不会抱怨。或者有人禁用了警告。不要那样做 事实上,Chrome 和 Firefox 早在 之前就开始对 HTTP 站点发出大红色的内容模糊警告。声称不需要 HTTPS 的网络管理员和所有者抱怨了一段时间,但很快意识到他们有两个选择 - 修复不安全的网站或丢失所有流量。 假设他们已经批准并使用 HTTPS。如果您收到有关自签名开发证书的警告,请在测试机器和客户端上信任它。这就是它的用途。事实上,有很多实际的副本询问如何信任开发证书而不是禁用它。毕竟,您必须做额外的工作才能使用 HTTP 而不是 HTTPS。 使用 HTTPS 的另一个原因是您可以通过这种方式获得 HTTP/2 和 更快的性能,因为浏览器可以下载 Blazor 并行使用的无数图像、样式表和脚本 【参考方案1】:

答案是使用 SSL/TLS 来保护 API 和 blazor 服务器应用(客户端)之间的通信。也就是说,将 HTTP(80 端口)转换为 HTTPS(443 端口)。

【讨论】:

以上是关于尝试使用 Edge 通过 HTTP 下载文件时隐藏 HTTPS 警告的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome 和 Edge 中使用 jQuery 闪烁隐藏和显示元素

Microsoft Edge怎么设置双通道下载?

Asp.net http 处理程序文本文件下载问题。适用于代码隐藏

如何在 MS Edge 和 IE 中隐藏密码输入 [重复]

通过 HTTP 下载文件时是不是应该使用 content-transfer-encoding 标头?

Microsoft Edge浏览器下载文件乱码修复方法