【问题标题】:IE 8 Mixed security content error for HTTPSHTTPS 的 IE 8 混合安全内容错误
【发布时间】:2023-03-16 14:38:01
【问题描述】:

我有一个 Web 应用程序(用 C# 编码的 .NET 2.0),它向登录用户和公众显示页面。当用户登录时,协议切换为 HTTPS。图像由位于虚拟目录文件夹中的 CSS 文件显示。问题是当显示 HTTPS 页面时,IE 8 会显示一条消息,指出页面上有混合安全内容。我不希望用户在他们的浏览器上禁用混合内容,而是在会员登录时通过 HTTPS 提供图像的 Web 应用程序。

如果图像在 HTML 文件中,那么很容易将指定协议(HTTP 或 HTTPS)的服务器变量传递给 HTML 页面。但是,如何将服务器变量传递给指定协议的 CSS? CSS 文件中的所有路径都是相对的。

例如 身体 { 字体:12px Arial、Helvetica、sans-serif; 颜色:#000000; 背景:#eadcc8 url(../images/bg_top.gif) no-repeat 0 0; 文本对齐:居中; 边距:0px; }

除了颜色和样式之外,我对 CSS 功能不太熟悉。

提前感谢您的帮助。

【问题讨论】:

    标签: css internet-explorer-8 https mixed


    【解决方案1】:

    某处必须有绝对路径。访问 https 页面,查看其来源并在其中搜索“http:”。如果这不起作用,请在它嵌入的文件中查找它。

    编辑:如果这对您不起作用或者您认为它太复杂,您还可以使用 Google Chrome 开发者工具(标签“资源”)来监控所有 http 请求。

    【讨论】:

    • 如果失败,请使用 Fiddler 监控流量并查看哪个请求转到 http: 而不是 https
    • 您好 thejh,感谢您的回答,但我知道哪些文件来自 HTTP(图像)和 HTTPS(aspx 页面)。问题是网站和页面是 HTTPS,图像来自 CSS 中的虚拟目录,这些图像的路径是相对的(../images/something.gif),协议仍然是 HTTP。想知道我需要在 CSS 代码中做什么才能使其工作。
    • @Pritika:CSS 是通过 HTTP 加载的?
    • 是的,CSS 正在作为 HTTP 加载。这段代码是由另一个程序员编写的,所以我认为他们是在后面的代码中构建路径而不是检查协议,因此默认协议是 HTTP,而不是 HTTPS。
    • @Pritika:不仅 HTTP 上的图像会触发警告,HTTP 上的 CSS 文件也会触发警告。您必须通过 https 加载 CSS 文件。
    猜你喜欢
    • 2011-08-04
    • 2015-02-11
    • 1970-01-01
    • 2022-08-03
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    相关资源
    最近更新 更多